Xem mẫu

Tạp chí Khoa học - Công nghệ Thủy sản

Số 2/2017

THOÂNG BAÙO KHOA HOÏC

ỨNG DỤNG CÔNG NGHỆ GIS TRÊN THIẾT BỊ DI ĐỘNG ANDROID
XÂY DỰNG PHẦN MỀM HỖ TRỢ CHO TÀU CÁ HOẠT ĐỘNG TRÊN BIỂN
APPLYING GIS TECHNOLOGY ON ANDROID TO BUILD A SUPPORT SOFTWARE
FOR FISHING BOATS ON THE SEA
Phạm Thị Thu Thúy1, Nguyễn Thủy Đoan Trang1, Trần Minh Văn1, Trần Văn Khánh2
Ngày nhận bài: 29/6/2016; Ngày phản biện thông qua: 23/5/2017, Ngày duyệt đăng: 15/6/2017

TÓM TẮT
Hiện nay, khi di chuyển ra ngư trường đánh bắt thủy sản, ngư dân thường sử dụng các công cụ hỗ trợ
trong việc định vị hướng di chuyển như: bản đồ giấy, bản đồ số, la bàn, thiết bị định vị GPS,… Mặt khác, ngư
dân hiện có dùng một số thiết bị được sản xuất ở nước ngoài. Tuy nhiên, tính năng của các thiết bị này còn hạn
chế, giá thành cao, ngư dân khó thay thế khi thiết bị hỏng hóc. Như vậy, nếu sử dụng các thiết bị di động để cài
đặt bản đồ cho ngư trường của Khánh Hòa, ngư dân hoàn toàn chủ động trong việc cập nhật bản đồ cũng như
tận dụng được các thiết bị di động sẵn có trong việc hỗ trợ đi biển. Chính vì các lý do trên, chúng tôi xây dựng
phần mềm SeaLink với mục đích: “Ứng dụng công nghệ GIS và công nghệ di động xây dựng phần mềm hỗ trợ
hoạt động khai thác thủy sản của ngư dân”. Phần mềm cơ bản đã hỗ trợ được yêu cầu đi biển của ngư dân và
các chức năng không thua kém với các máy của Furuno và các thiết bị GPS chuyên dụng khác.
Từ khóa: GIS, di động, tàu cá, bản đồ, phần mềm
ABSTRACT
Nowadays, when going to the fishing ground, fishmen often use some of support tools in orienting the
moving way, such as printed maps, storage usage maps, compasses, GPS located equipments,... Besides, the
fishman has been using equipments which are manufactured by foreign countries. However, most of these
equipments have limitted usage, high price, difficulty in repairing. Therefore, if we install the SeaLink software
on the mobile device, the fishmen can reuse the available mobile equipments and can easily update the sea map
on their mobile equipments. From the above reasons, we propose a software named SeaLink with the purpose
is “Applying GIS technology on Android to build a support software for fishing boats on the sea”. The SeaLink
software has basically satisfied the requirements of fishermen and the functions of the SeaLink are camparable
with Furuno machines and other GPS devices.
Keywords: GIS, mobile, fishing boat, map, software
I. ĐẶT VẤN ĐỀ
Trong vòng 30 năm trở lại đây, cùng với
sự phát triển mạnh mẽ của công nghệ về
nhiều lĩnh vực thì công nghệ hỗ trợ thu thập, tổ
chức và khai thác thông tin địa lý có các bước

phát triển đáng kinh ngạc. Sự cạnh tranh quyết
liệt cùng với đòi hỏi ngày càng tăng từ phía
người sử dụng đã thúc đẩy nhiều giải pháp công
nghệ có chất lượng cao trong thị trường ngày
càng rộng lớn của hệ thống thông tin địa lý.

Khoa Công nghệ Thông tin, Trường Đại học Nha Trang, thuthuy@ntu.edu.vn, nguyenthuydoantrang@ntu.edu.vn,
minhvan@ntu.edu.vn
2
Trường Đại học Khánh Hòa, cnkhanhdl@gmail.com
1

112 • TRƯỜNG ĐẠI HỌC NHA TRANG

Tạp chí Khoa học - Công nghệ Thủy sản

Số 2/2017

Công nghệ GIS đã bắt đầu được sử dụng
rộng rãi ở các nước phát triển hơn một thập
niên qua, với những tính năng ưu việt, công
nghệ GIS ngày nay đang được ứng dụng trong
nhiều lĩnh vực nghiên cứu và quản lý.
Hiện tại có nhiều nghiên cứu liên quan đến
các ứng dụng của GIS trong nước cũng như
trên thế giới. cụ thể như tìm đường đi ngắn
nhất trên bản đồ số hóa [3] Nhưng hầu hết các
ứng dụng chủ yếu tập trung triển khai cho bản
đồ trên đất liền như: “Phát triển ứng dụng GIS
trên thiết bị di động” của Mao Ngoy [1] để tạo
bản đồ thành phố Phnom Penh và đưa lên thiết
bị di động (window phone) để khai thác và sử
dụng một số thông tin về thành phố. Mặt khác,
các máy móc hiện nay được ngư dân trang bị
hầu như được nhập khẩu từ nước ngoài [7, 9],
do đó giá thành thường cao nhưng điểm hạn
chế nổi bật đó là phần mềm đi theo máy. Mặt
khác, nếu máy bị hỏng thì khó tìm nơi sữa
chữa hoặc thiết bị thay thế.
Việt Nam cũng có nhiều đề tài liên quan
đến ứng dụng công nghệ GIS trong định vị
hải đồ. Tiêu biểu là đề tài “Ứng dụng GPS
và GIS trong quản lý đội tài khai thác thủy
sản xa bờ” của PGS.TS. Nguyễn Thạch [2].
Tuy nhiên, đề tài này chủ yếu để hỗ trợ cho
Tên thiết bị
Nơi sản xuất
Icom 718
Nhật
Định vị Furuno 32
Nhật
Định vị Furuno 50
Nhật
Định vị Furuno 600
Nhật
Định vị SanHan
Trung Quốc

công tác quản lý đội tàu cá nhằm mục đích
cứu hộ, cảnh báo nguy hiểm, điều động tàu,
chưa thực sự hỗ trợ ngư dân trong việc tìm
đường đi trên biển.
Công cụ hỗ trợ việc tìm đường đi trên biển
hiện nay phải nói đến Hải đồ điện tử được sản
xuất và phát hành bởi Cơ quan Thủy đạc quốc
gia [5]. Tuy nhiên phần mềm này chủ yếu phục
vụ đội tàu vận chuyển, ngư dân khó tiếp cận để
được sử dụng.
Bên cạnh đó, Khánh hòa hiện nay có
khoảng 9800 phương tiện đánh bắt cá. Trong
đó có khoảng 500 phương tiện công suất trên
300CV đánh bắt ở Hoàng Sa, Trường Sa.
Nhưng hầu hết ngư dân vẫn sử dụng các
phương pháp thủ công để tìm đường đi như
là la bàn hoặc một số máy chuyên dụng nhập
khẩu ở nước ngoài, với mục đích xác định tọa
độ tàu cá và tìm đường đi. Với các máy dò
tìm đường đi và xác định tọa độ nhập khẩu từ
nước ngoài nguyên kiện thì rất khó khăn về
kinh phí cho ngư dân đánh bắt nhỏ lẻ. Ngoài ra
dịch vụ sửa chữa và bảo hành là một vấn đề
khó khăn hơn nhiều.
Theo khảo sát điều tra của chúng tôi, dưới
đây là các máy chuyên dụng được ngư dân sử
dụng phổ biến hiện nay:
Ngôn ngữ
Giá cả
Tiếng Việt
12 000 000
Tiếng Việt
7 000 000
Tiếng Việt
24 000 000
Tiếng Việt
30 000 000
Tiếng Việt
18 500 000

Ngoài các máy chuyên dụng trên, ngư dân
với các tàu thuyền đánh bắt nhỏ lẻ chủ yếu
sử dụng la bàn hoặc kinh nghiệm để xác định
hướng đi và về. Nhu cầu của người dân về một
thiết bị với các chức năng hỗ trợ là: Định vị tọa
độ; xác định hướng đi, khoảng cách cần thiết;
lưu vết tàu, …
Chính vì vậy, mong muốn của chúng tôi là
tạo ra được một phần mềm chạy trên nền tảng
android để hỗ trợ ngư dân với các tính năng
cơ bản. Mục tiêu là giảm giá thành so với việc

mua máy chuyên dụng, khả năng bảo trì tốt
hơn, tránh việc lãng phí và đảm bảo được các
mục tiêu về an toàn, an ninh trên biển.
II. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP
THỰC HIỆN
1. Cơ sở lý thuyết
1.1. Thiết bị di động thông minh
Điện thoại di động thông minh
(smartphones): là các điện thoại được trang
bị cấu hình tốt, chạy hệ điều hành thông minh
TRƯỜNG ĐẠI HỌC NHA TRANG • 113

Tạp chí Khoa học - Công nghệ Thủy sản
với các bộ công cụ phát triển phần mềm cho
phép lập trình viên phát triển đa dạng các ứng
dụng phục vụ mọi mục đích của cuộc sống và
công việc.
Máy tính bảng (tablets): là các thiết bị thông
minh, tương tự như smartphones nhưng có
kích thước màn hình lớn hơn rất nhiều (thông
thường từ 7.0 – 13 inch), có thể có khe cắm
thẻ SIM (phục vụ việc nhắn tin, gọi điện hoặc
truy cập Internet qua mạng 3G).
Điện thoại thông minh lai máy tính bảng
(phablet): là loại thiết bị lai giữa smartphone và
tablet, về tính năng nó một smartphone, nhưng
được trang bị màn hình cỡ lớn hơn smartphone
thông thường và nhỏ hơn kích thước phổ biến
của màn hình tablet.
Hiện nay, có nhiều hệ điều hành được
sử dụng trên thiết bị di động thông mình như:
Android, iOS, Windows Phone, BlackBerry OS
… Nhưng để so sánh và đưa ra đánh giá cụ
thể như “hệ điều hành nào tốt hơn?”, “hệ điều
hành nào vượt trội hơn?” thì dường như không
thể. Đơn giản bởi vì mỗi hệ điều hành đề
được xây dựng trên một nền tảng hoàn toàn
khác nhau và có những ưu điểm, nhược điểm
nhất định.
Hệ điều hành Android: là một hệ điều hành
miễn phí, mã nguồn mở, được phát triển bởi
Google dựa trên nền tảng Linux. Android được
thiết kế dành cho các thiết bị di động màn hình
cảm ứng như điện thoại thông minh, máy tính
bảng. Ưu điểm của Android là một hệ điều hành
không nặng nề, có khả năng tinh chỉnh, miễn
phí, có một cộng đồng lập trình viên đông đảo
chuyên viết các ứng dụng để mở rộng chức
năng của thiết bị bằng ngôn ngữ lập trình Java
có sửa đổi. Chính vì vậy, Android đã trở thành
nền tảng điện thoại thông minh phổ biến nhất
thế giới. Android chiếm 75% thị phần điện thoại
thông minh trên toàn thế giới vào thời điểm quý
3 năm 2012, với tổng cộng 750 triệu thiết bị đã
được kích hoạt. Vào tháng 4 năm 2013 đã có
1,5 triệu lượt kích hoạt mỗi ngày và tổng số
thiết bị Android được kích hoạt lên đến 1 tỷ vào
tháng 9/2013.

114 • TRƯỜNG ĐẠI HỌC NHA TRANG

Số 2/2017
1.2. Tìm hiểu về ArcGIS
ArcGIS là một sản phẩm của Viện nghiên
cứu hệ thống môi trường (ESRI). ArcGIS kết
nối bản đồ, ứng dụng, dữ liệu và con người,
từ đó giúp người dùng đưa ra quyết định thông
minh hơn và nhanh chóng hơn. ArcGIS cho
phép người sử dụng thực hiện các chức năng
của GIS ở bất kỳ nơi nào họ muốn: trên máy
tính, máy chủ, trên web… Nó cung cấp cho
người dùng trong tổ chức khả năng khám phá,
sử dụng, thành lập và chia sẻ bản đồ từ bất kỳ
thiết bị nào, mọi lúc, mọi nơi.
Đến nay, ArcGIS đã hỗ trợ cho người dùng
khá nhiều phiên bản: ArcGIS online, ArcGIS
for destop, ArcGIS for mobile [6], ArcGIS
for server, ArcGIS for developers, ArcGIS
solutions, ArcGIS marketplace. Ở đây tôi sẽ
tập trung vào nghiên cứu và sử dụng phiên
bản ArcGIS trên destop để tạo, xử lý bản đồ
và phiên bản dành cho nhà phát triển để phát
triển trên thiết bị di dộng sử dụng hệ điều hành
android. Trong bài báo này, chúng tôi sử dụng
công cụ ArcGIS runtime SDK [4], một trong
những công cụ mã nguồn mở trên nền tảng
ArcGIS, để hỗ trợ xây dựng phần mềm.
2. Phương pháp thực hiện
Bởi vì mục tiêu chính của phần mềm
SeaLink là hỗ trợ cho tàu cá hoạt động trên biển
do vậy việc xác định tọa độ và tìm đường đi có
khoảng cách tối ưu là trọng tâm của phần mềm.
2.1. Chuyển đổi giữa tọa độ cầu và bản đồ phẳng
Do trái đất hình cầu, định vị tọa độ dùng
longitude và latitude, hay gọi là hệ tọa độ
WGS84 Ellipsoid (World Geodetic System
1984) [10], tuy nhiên khi vẽ lên mặt phẳng thì
phải chuyển đổi sang tọa độ WGS84 Mercator.
Như vậy, để xác định tọa độ của một điểm trên
bản đồ phẳng trong phần mềm thì cần chuyển
đổi từ tọa độ cầu (Ellipsoid) sang tọa độ phẳng
(Mercator).
Trong phần mềm SeaLink chúng tôi sử
dụng ngôn ngữ Java, do đó chúng tôi tham
khảo đoạn mã Java ở [11] để xác định tọa
độ phẳng:

Tạp chí Khoa học - Công nghệ Thủy sản

Số 2/2017

import java.lang.Math;
public class SphericalMercator {
public static final double RADIUS = 6378137.0; /* in meters on the equator */
/* These functions take their length parameter in meters and return an angle in degrees */
public static double y2lat(double aY) {
return Math.toDegrees(Math.atan(Math.exp(aY / RADIUS)) * 2 - Math.PI/2);
}
public static double x2lon(double aX) {
return Math.toDegrees(aX / RADIUS);
}
/* These functions take their angle parameter in degrees and return a length in meters */
public static double lat2y(double aLat) {
return Math.log(Math.tan(Math.PI / 4 + Math.toRadians(aLat) / 2)) * RADIUS;
}
public static double lon2x(double aLong) {
return Math.toRadians(aLong) * RADIUS;
}
}
2.2. Thuật toán tìm đường đi ngắn nhất trên
bản đồ số
Việc tìm đường đi ngắn nhất trên biển
thuộc bản đồ số đưa về việc tìm khoảng cách
ngắn nhất giữa hai điểm trên bản đồ. Trong
phần mềm SeaLink, chúng tôi sử dụng công
thức Harversine [12, 13] để đo khoảng cách
giữa hai điểm, tức là khoảng cách ngắn nhất
trên bề mặt trái đất:
(1)

nếu trên đường thẳng đó có chứa những
điểm thuộc bãi cạn hoặc đá ngầm thì đường
thẳng sẽ được thay thế bằng đường gấp khúc,
điểm gấp khúc chính là điểm bên ngoài của bãi
cạn hoặc đá ngầm.
Hiện tại phần mềm SeaLink của chúng tôi
có sáu lớp độ sâu, cụ thể: 1-200m, 200-1000m,
1000-2000m,

2000-3000m,

3000-4000m,

4000-5000m. Trong đó, mỗi lớp độ sâu là một
tập các hình polygon tổng quát (không lồi)
Để biết 1 điểm tọa độ thuộc độ sâu nào thì

trong đó, hav là hàm harversine:

chúng tôi dùng thuật toán xác định điểm đó có
(2)

d là khoảng cách giữa hai điểm
r là bán kính của quả cầu
ϕ1, ϕ2 tương ứng là vĩ độ của điểm 1 và
điểm 2 tương ứng theo đơn vị radian.
λ1, λ2 tương ứng là kinh độ của điểm 1 và
điểm 2 tương ứng theo đơn vị radian
Mặt khác, các tàu di chuyển trên biển
thường phải tránh những bãi cạn hoặc đá
ngầm. Đường đi ngắn nhất giữa hai điểm
trên biển có thể là đường thẳng, tuy nhiên

nằm trong polygon không (liên quan kỹ thuật
đồ họa) [14, 15]. Ý tưởng cơ bản của thuật
toán như sau:
Vẽ một đường ngang ở bên phải của mỗi
điểm và mở rộng nó đến vô cực
Đếm số lần đường giao nhau với cạnh
đa giác.
Một điểm nằm bên trong đa giác nếu một
trong hai điểm giao nhau là lẻ hoặc điểm nằm
trên cạnh đa giác. Nếu không có điều kiện nào
là đúng, thì điểm nằm ở bên ngoài.
TRƯỜNG ĐẠI HỌC NHA TRANG • 115

Tạp chí Khoa học - Công nghệ Thủy sản

Hình 1. Minh họa thuật toán kiểm tra một điểm có
nằm trong polygon không

Lưu ý, thuật toán sẽ trả về true (điểm nằm
bên trong polygon) nếu điểm nằm trên cạnh
hoặc đỉnh của đa giác đã cho. Khi kiểm tra
đường thẳng từ điểm p đến điểm giao cắt bên
phải, chúng tôi kiểm tra xem điểm p có nằm
thẳng hàng với các đỉnh của đa giác không.
Nếu đó là thẳng hàng, thì chúng ta kiểm tra
xem điểm p có nằm trên mặt đa giác hiện tại
không, nếu nó nằm, chúng ta sẽ trả về true,
ngược lại trả về false.
3. Hướng dẫn cài đặt và các chức năng của
phần mềm SeaLink
3.1. Hướng dẫn cài đặt
Chúng tôi đã upload phần mềm lên
trang Megafileupload, link download phần
mềm SeaLink:
http://www.megafileupload.
com/26a2p/SeaLink.rar
● Yêu cầu phần cứng:
- Các thiết bị Android máy tính bảng hay
điện thoại.
- Có các cảm biến: Location Service GPS,
Magnetometer, Barometer (La bàn kế).
- Màn hình cảm ứng.
- Cài đặt hệ điều hành Android từ phiên
bản 4.4 trở lên (4.4 - KitKat, 5.0, 5.1 - Lolipop,
6.0 - Mashallow).
● Phương pháp cài đặt:
- Chép thư mục bản đồ (SeaNavig) và bộ
nhớ trong của máy tính bảng (không chép lên
thẻ nhớ ngoài)
- Cài đặt file APK SeaLink.apk.
- Cho phép phần mềm SeaLink truy cập sử
dụng tính năng Location Service và Storage.

116 • TRƯỜNG ĐẠI HỌC NHA TRANG

Số 2/2017
- Đối với Android 6.0 (Mashallow) cần cho
phép truy cập tính năng bằng tay theo trình tự
bên dưới:
Setting → Application → Application
Manager → Chọn ứng dụng SeaLink → Chọn
Permission → Cho phép Location và Storage
3.2. Các chức năng của SeaLink
● Hiển thị dữ liệu bản đồ Biển Đông và phụ cận
Các lớp dữ liệu hiển thị:
- Vùng mặt nước biển Đông với độ sâu
1-200 mét (độ chính xác 1:500).
- Vùng mặt nước biển Đông với độ sâu
200-1000 mét (1:5000).
- Vùng mặt nước biển Đông với độ sâu
1000-2000 mét (1:5000).
- Vùng mặt nước biển Đông với độ sâu
2000-3000 mét (1:5000).
- Vùng mặt nước biển Đông với độ sâu
3000-4000 mét (1:5000).
- Vùng mặt nước biển Đông với độ sâu
4000-5000 mét (1:5000).
- Vùng mặt nước biển Đông với độ sâu trên
5000 mét (1:5000).
- Biên giới quốc gia các nước khu vực
Đông Nam Á.
- Ranh giới các tỉnh Việt Nam.
- Vùng mặt nước sông ngòi, ao hồ Việt Nam.
- Các tuyến quốc lộ chính Việt Nam.
- Các địa danh hành chính đến cấp huyện
Việt Nam (Hình 2)
● Xử lý hiển thị bản đồ
- Phóng to, thu nhỏ, tỉ lệ xích bản đồ, xoay
bản đồ.
- Xem bản đồ toàn cảnh thu nhỏ.
● Xác định tọa độ GPS, hướng la bàn, tốc
độ di chuyển, hướng di chuyển
- Tọa độ GPS: kinh độ, vĩ độ (longitude,
latitude)
- Độ sâu mực nước biển tại vị trí hiện tại
dựa theo dữ liệu bản đồ.
- Hướng xoay của la bàn: North, East,
South, West, NE, NW, SE, SW.
- Tốc độ di chuyển dựa trên tọa độ GPS
theo km/h hoặc NM/h.
- Vị trí sẽ đến nếu giữ nguyên hướng đi.

nguon tai.lieu . vn