Trong quá trình thử nghiệm, chúng tôi đã tiến hành cài đặt modul server và module client nhƣ sau:
Modul serverđƣợc xây dựng và phát triển trên nền tảng công nghệ Điện toán đám mây do Google cung cấp – Google App Engine, đƣợc viết bằng ngôn ngữ Java, HTML và Javascript. Modul server cung cấp cho ngƣời quản trị những chức năng sau: - Thêm mới, xóa, sửa điểm tiện ích: thông tin về điểm tiện ích bao gồm tên điểm tiện ích, vị trí (kinh độ, vĩ độ, độ cao), mô tả, loại tiện ích (trƣờng học, cây xăng, điểm đặt máy ATM), địa chỉ.
Hình 4.5. Giao diện quản lý nhóm điểm tiện ích
Hình 4. 7. Giao diện thêm mới/sửa điểm tiện ích
- Hiển thị bản đồ với các điểm tiện ích đã tạo đƣợc gắn trên đó. Các tính năng cơ bản của bản đồ đƣợc tích hợp sẵn nhƣ phóng to thu nhỏ bản đồ, di chuyển bản đồ.
-
Modul client đƣợc phát triển trên hệ điều hành Android, để chạy ứng dụng, ngƣời dùng phải kích hoạt chức năng GPS của thiết bị. Modul này cung cấp những chức năng sau:
- Truyền dữ liệu vị trí hiện tại, hƣớng camera của thiết bị lên server khi bật ứng dụng, nhận dữ liệu các điểm tiện ích xung quanh vị trí hiện tại và trên đúng hƣớng quay của camera. Hệ thống truy vấn dữ liệu dựa trên 2 nguồn dữ liệu: Dữ liệu của Wikipedia và dữ liệu riêng của ứng dụng.
Với nguồn CSDL của Wikipedia, việc truy vấn và nhận dữ liệu thông qua các web service đƣợc Google cung cấp miễn phí.
Với nguồn CSDL ngƣời dùng, việc truy vấn dữ liệu phải qua các bƣớc xử lý trung gian để thực hiện truy vấn
Quá trình truy vấn dữ liệu từ nguồn CSDL của ngƣời dùng phải trải qua các bƣớc thực hiện sau:
Chuyển đổi các đơn vị đo của tọa độ địa lý
Tính khoảng cách giữa các điểm trên bản đồ (theo công thức Haverisine)
Công thức Haversine
a = sin²(Δφ/2) + cos(φ1).cos(φ2).sin²(Δλ/2) c = 2.atan2(√a, √(1−a))
d = R.c
Trong đó φ: vĩ độ. λ: kinh độ.
R: bán kính Trái Đất (Radius = 6,371km)
Chú ý Các góc trong công thức được sử dụng với đơn vị radian
- Hiển thị điểm tiện ích cùng các thông tin về điểm tiện ích trên màn hình thiết bị.
- Chỉ dẫn đƣờng đến điểm tiện ích nhất định.