Khóa luận Tìm hiểu về location services cho di động và xây dựng ứng dụng minh họa
MỤC LỤC Chương 1 GIỚI THIỆU26 Chương 2 CÔNG NGHỆ29 2.1 Công nghệ định vị29 2.1.1 Các hệ thống vệ tinh định vị hiện có30 2.1.1.1 NAVSTAR GPS:30 2.1.1.2 GLONASS (GLObal NAvigation Satellite System)31 2.1.1.3 Galilleo32 2.1.2 Trạm thu phát (Base station)32 2.1.3 Các loại thiết bị có tính năng định vị cho người dùng34 2.1.4 Cách thức định vị36 2.1.4.1 Cell identification / Cell of origin36 2.1.4.2 Định vị từ nhiều phía (multilateration)37 2.1.4.2.1 Time difference of arrival (TDOA)37 2.1.4.2.2 Time of arrival (TOA)39 2.1.4.2.3 Angle of arrival (AOA)40 2.1.4.2.4 Enhanced observed time difference (E-OTD)40 2.1.4.2.5 Advanced forward link trilateration (A-FLT)41 2.1.4.3 Định vị bằng vệ tinh: hệ thống định vị toàn cầu (GPS)41 2.1.4.3.1 Các thành phần của GPS: user, ground & space section41 2.1.4.3.2 Phương pháp định vị42 2.1.4.3.3 Các cải tiến43 2.1.5 Khác biệt giữa các hệ thống định vị được ứng dụng trong LBS với các hệ thống tương tự46 2.1.5.1 Khác biệt với các hệ thống định vị thời gian thực46 2.1.5.2 Sự khác biệt với các hệ thống định hướng và theo dõi48 2.1.6 Tính riêng tư khi sử dụng công nghệ định vị49 2.2 Hệ thống thông tin địa lý (GIS)49 2.2.1 Lịch sử50 2.2.2 Dữ liệu cho GIS51 2.2.3 Xử lý thông tin với GIS53 2.2.3.1 Mô hình hóa dữ liệu54 2.2.3.2 Mô hình hóa các mạng lưới54 2.2.3.3 Mô hình hóa bản đồ55 2.2.3.4 Thống kê địa lý55 2.2.3.5 Mã hóa địa chỉ (geocoding)56 2.2.4 Trình bày thông tin với GIS56 2.2.4.1 Bản đồ56 2.2.4.2 Đồ họa máy tính57 2.3 Công nghệ truyền tải dữ liệu57 2.3.1 WAP/GPRS/EDGE57 2.3.2 Bluetooth/Wifi/WiMax58 2.3.3 Truyền thông vệ tinh59 Chương 3 CÁC NGHIÊN CỨU, CHUẨN VÀ ỨNG DỤNG HIỆN TẠI61 3.1 Nghiên cứu61 3.1.1 Các công ty & tổ chức nổi bật61 3.1.2 Các vấn đề mở62 3.2 Chuẩn62 3.3 Các ứng dụng thương mại64 3.3.1 Google64 3.3.2 Yahoo68 3.3.3 Vietmap69 3.3.4 DiaDiem.com70 3.3.5 Vietbando.com71 3.3.6 Vimap73 3.3.7 SMS Locator73 Chương 4 XÂY DỰNG SERVER PHỤC VỤ LBS75 4.1 Giới thiệu về server và web service75 4.1.1 Vai trò và khả năng của hệ thống server75 4.1.2 Yêu cầu cho ứng dụng trên server77 4.1.2.1 Có thể tái sử dụng, dễ bảo trì77 4.1.2.2 Bảo mật78 4.1.2.3 An toàn (secure & reliable)78 4.1.3 Ưu điểm của thiết kế có server79 4.2 Xây dựng hệ thống server phục vụ LBS79 4.2.1 Phân tích79 4.2.1.1 Giới thiệu về web service80 4.2.1.2 Kiến trúc của web service trong ứng dụng LBS82 4.2.1.3 Mashup83 4.2.1.4 Các phương pháp khác84 4.2.1.4.1 SAAS84 4.2.1.4.2 Client only85 4.2.2 Ngôn ngữ85 4.2.2.1 Giới thiệu Java86 4.2.2.2 Ưu điểm của Java87 4.2.2.2.1 Là ngôn ngữ lập trình thế hệ thứ 3 (3GL) với nhiều cải tiến87 4.2.2.2.2 Là ngôn ngữ được thông dịch (interpreted)87 4.2.2.2.3 Phát triển về mặt công nghệ88 4.2.2.3 Khuyết điểm của Java89 4.2.2.4 Kết luận về Java89 4.2.2.5 Các ngôn ngữ khác có thể dùng để triển khai web service90 4.2.2.5.1 ASP.NET90 4.2.2.5.2 PHP90 4.2.2.5.3 Ruby on Rails91 4.2.3 Cơ sở dữ liệu91 4.2.3.1 Giới thiệu MySQL91 4.2.3.2 MySQL spatial extension92 4.2.3.2.1 Biểu diễn dữ liệu92 4.2.3.2.2 Truy xuất thuộc tính cũa dữ liệu địa lý93 4.2.3.2.3 Thao tác trên dữ liệu địa lý96 4.2.3.3 Ứng dụng MySQL vào xây dựng LBS98 Chương 5 XÂY DỰNG CLIENT CHO LBS102 5.1 Định nghĩa102 5.2 Môi trường client102 5.2.1 Windows Mobile và Microsoft Auto102 5.2.2 Symbian104 5.2.3 J2ME105 5.3 Các vấn đề khi phát triển ứng dụng trên client là thiết bị di động106 5.3.1 Dữ liệu106 5.3.2 Xử lý và tốc độ107 5.3.3 Liên lạc107 5.3.4 Đồ họa108 Chương 6 XÂY DỰNG ỨNG DỤNG LBS109 6.1 Phát biểu bài toán109 6.1.1 Giới thiệu109 6.1.2 Mô tả tổng quan109 6.1.3 Sử dụng110 6.2 Phân tích yêu cầu111 6.2.1 Usecase111 6.2.1.1 Danh sách các actor111 6.2.1.2 Danh sách các usecase111 6.2.1.3 Usecase “Định vị”112 6.2.1.4 Usecase “Hiển thị vị trí”113 6.2.1.5 Usecase “Hiển thị đường đi”113 6.2.1.6 Usecase “Di chuyển trên bản đồ”114 6.2.1.7 Usecase “Tìm đường”114 6.2.1.8 Usecase “Tìm địa danh”115 6.2.1.9 Usecase “Tìm địa danh gần đúng”115 6.2.1.10 Usecase “Liệt kê loại địa điểm”116 6.2.1.11 Usecase “Hiển thị danh sách kết quả”117 6.2.1.12 Usecase “Tìm đường”117 6.2.1.13 Usecase “Thay đổi phương pháp tìm kiếm”118 6.2.1.14 Usecase “Bật / tắt chức năng định vị”118 6.3 Thiết kế và phát triển ứng dụng119 6.3.1 Công cụ, môi trường và tổng quan hệ thống119 6.3.1.1 Công cụ và môi trường119 6.3.1.2 Cơ sở dữ liệu và hoạt động của hệ thống120 6.3.2 Cơ sở dữ liệu123 6.3.3 Sơ đồ lớp mức thiết kế ở server126 6.3.3.1 Lớp LocationBasedServices128 6.3.3.2 Package business129 6.3.3.2.1 Lớp Finder129 6.3.3.2.2 Lớp Router129 6.3.3.3 Package data129 6.3.3.3.1 Lớp StreetData129 6.3.3.3.2 Lớp LocationSearchResultData129 6.3.3.3.3 Lớp StreetNodeData129 6.3.3.3.4 Lớp VenueTypeData129 6.3.3.3.5 Lớp Configuration130 6.3.3.4 Package objects130 6.3.3.4.1 Lớp LocationSearchResult130 6.3.3.4.2 Lớp StreetNode130 6.3.3.4.3 Lớp SimpleStreetNode130 6.3.3.4.4 Lớp DijkstraVertex130 6.3.3.4.5 Lớp Street130 6.3.3.4.6 Lớp Coordinate130 6.3.3.4.7 Lớp VenueType131 6.3.4 Sơ đồ lớp mức thiết kế ở client131 6.3.4.1 Các lớp trong package location based service131 6.3.4.1.1 Lớp LocationBasedService131 6.3.4.1.2 Lớp LocationBasedService_Stub132 6.3.4.1.3 Lớp LocationSearchResult, Coordinate và SimpleStreetNode132 6.3.4.2 Lớp GoogleMaps132 6.3.4.3 Lớp CloudMade132 6.3.4.4 Lớp MicroDouble132 6.3.5 Thiết kế giao diện132 6.3.5.1 Sơ đồ tương tác giữa các màn hình134 6.3.5.2 Màn hình chính135 6.3.5.3 Màn hình tìm kiếm137 6.3.5.4 Màn hình tìm kiếm theo loại địa điểm138 6.3.5.5 Màn hình kết quả tìm kiếm138 6.3.5.6 Màn hình tùy chọn ứng dụng140 6.3.6 Các API, lớp và hàm của các tác giá khác được sử dụng trong đề tài141 6.3.6.1 Google Maps static API & Lớp Google Map141 6.3.6.2 Cloud made routing API141 6.3.6.3 JSONObject142 6.3.6.4 MicroFloat142 6.4 Kiểm thử (testing)142 6.4.1 Acceptance system test cho server và client143 6.4.2 Unit test trên server143 6.4.2.1 LocationBasedServicesTest143 6.4.2.2 Finder test144 6.4.2.3 Router test144 6.4.2.4 LocationSearchResultData test145 6.4.2.5 StreetData test146 6.4.2.6 StreetNodeData test147 6.4.2.7 VenueTypeData test148 6.4.2.8 Coordinate test148 6.4.2.9 DijkstraVertex test149 6.4.2.10 LocationSearchResult test150 6.4.2.11 SimpleStreetNode test150 6.4.2.12 StreetNode test150 6.4.2.13 Street test151 6.4.3 Conformance test trên server151 6.4.3.1 Các test case đã thực hiện trên hàm Find152 6.4.3.2 Các test case đã thực hiện trên hàm FindFuzzy154 6.4.3.3 Các test case đã thực hiện trên hàm FindStreet154 6.4.3.4 Các test case đã thực hiện trên hàm Route155 6.4.4 Performance test trên server156 6.4.4.1 Cấu hình các hệ thống tham gia test157 6.4.4.2 Test 1: Null test157 6.4.4.3 Test 2: Các request bình thường159 6.5 Tích hợp và triển khai159 6.5.1 Client160 6.5.2 Server160 6.5.3 Mô hình triển khai thực tế nhằm đánh giá ứng dụng162 6.6 Đánh giá và so sánh163 6.6.1 Lưu trữ163 6.6.2 Xử lý164 6.6.3 So sánh tính năng với các ứng dụng khác165 6.6.3.1 Kết quả chạy Google Maps166 6.6.3.2 Kết quả chạy Vimap168 6.6.3.3 Kết quả chạy SMS Locator169 6.6.3.4 Kết quả chạy ứng dụng minh họa – locations service client170 Chương 7 TỔNG KẾT173 7.1 Kết quả đạt được173 7.2 Hướng phát triển173 7.2.1 Cải thiện hiệu năng173 7.2.2 Cải thiện mô hình triển khai174 7.2.3 Thêm tính năng cho ứng dụng174 7.2.4 Tăng tính tiện dụng cho người dùng174 TÀI LIỆU THAM KHẢO175
Các file đính kèm theo tài liệu này:
- LBS.pdf