SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
1 
TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN CUỐI KỲ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG ĐỀ TÀI: ỨNG DỤNG TRA CỨU ĐỊA ĐIỂM TRÊN ANDROID GVHD: ThS. Phan Nguyệt Minh SVTH: Nhóm 04 Lê Anh Toàn K34.104.090 Trần Công Minh K34.104.051 Lê Quang Phước K34.104.063 TP.HCM-2011
2 
Mục Lục 
1. Giới thiệu .................................................................................................................. 3 
1.1. Mục tiêu ............................................................................................................. 3 
1.2. Chức năng chính ................................................................................................. 3 
2. Giới thiệu một số kỹ thuật sử dụng trong ứng dụng ................................................... 3 
2.1. Hiển thị bản đồ và một số tùy chỉnh .................................................................... 3 
2.2. Định vị vị trí hiện tại người dùng ........................................................................ 6 
2.3. Tìm kiếm địa điểm gần nhất vị trí người dùng .................................................... 6 
2.4. Chức năng chỉ đường từ vị trí hiện tại đến vị trí khác ......................................... 7 
2.5. Tính khoảng cách và thời gian giữa điểm bắt đầu và kết thúc ............................. 9 
2.6. Google Places Autocomplete API ..................................................................... 10 
2.7. Geocoder .......................................................................................................... 11 
3. Kiến trúc chương trình ............................................................................................ 11 
Google Maps API Web Services .................................................................................... 11 
4. Giao diện ................................................................................................................ 12 
4.1. Màn hình chính................................................................................................. 12 
4.2 Giao diện chức năng tra cứu theo địa điểm ....................................................... 12 
4.3 Giao diện chức năng cài đặt .............................................................................. 13 
4.4 Giao diện hiển thị kết quả tra cứu địa điểm ....................................................... 13 
4.5 Giao diện hiển thị địa điểm trên bản đồ ............................................................ 14 
4.6 Giao diện hiển thị chi tiết lộ trình từ điểm bắt đầu đến đích .............................. 14 
5. Cài đặt và thử nghiệm ............................................................................................. 15 
6. Kết luận và hướng mở rộng ..................................................................................... 15 
7. Tài liệu tham khảo .................................................................................................. 15
3 
1. Giới thiệu 
1.1. Mục tiêu 
Mục tiêu của đề tài là xây dựng ứng dụng tra cứu địa điểm như nhà hàng, máy ATM… bên cạnh đó ứng dụng có thể xác định vị trí hiện tại của người dùng và cho phép tìm các địa điểm xung quanh người dùng. Ngoài ra, ứng dụng còn cho phép xem lộ trình đường đi từ vị trí hiện tại đến điểm đích một cách chi tiết và trực quan. 
1.2. Chức năng chính 
Hiển thị bản đồ, phóng to thu nhỏ bản đồ, cho phép thay đổi các chế độ hiển thị bản đồ như: chế độ đường phố (street view), chế độ vệ tinh (satellite) Hỗ trợ tìm các địa điểm thông dụng, cho phép người dùng có thể thêm địa điểm tìm kiếm Định vị vị trí hiện tại người dùng Hỗ trợ tìm kiếm địa điểm chính xác, gần nhất với vị trí người dùng Tích hợp chức năng chỉ đường từ vị trí hiện tại đến vị trí khác Hỗ trợ giao diện tiếng Việt và Anh. 
2. Giới thiệu một số kỹ thuật sử dụng trong ứng dụng 
2.1. Hiển thị bản đồ và một số tùy chỉnh 
Cách đăng ký một Api Key và hiển thị bản đồ trong Android MapView là một điều khiển giúp chúng ta có thể hiển thị bản đồ một cách dễ dàng và đơn giản. Tuy nhiên để hiển thị được, ta cần đăng ký một Api Key của Google. Vì sử dụng cơ sở dữ liệu bản đồ của Google nên ta phải đăng ký một Api Key để có thể kết nối đến cơ sở dữ liệu của Google và sử dụng nó. Sau đây, ta sẽ tìm hiểu cách đăng ký một Api Key. Để đăng ký một Api Key, ta phải lấy được mã chứng nhận MD5 của ứng dụng: 
 Đầu tiên, ta sao chép tệp “debug.keystore” ở thư mục “C:Documents and Settingsusername.Android” vào ổ đĩa C. 
 Sau đó, dùng công cụ keytool.exe của java ( nằm ở thư mục bin của jre, chẳng hạn C:Program FilesJavajre6bin) để lấy mã MD5 trong tệp “debug.keystore”.
4 
Ta vào Start > Run, gõ cmd, sau đó chỉ dẫn đến thư mục bin chứa keytool.exe và gõ lệnh: 
Keytool –list –alias androiddebugkey –keystore “C:debug.keystore” – storepass android -keypass android Ta sẽ thu được mã MD5: 
 Tiếp theo, ta truy cập vào địa chỉ http://code.google.com/android/maps-api- signup.html và dùng mã MD5 lấy được để đăng ký Api Key. Giao diện sau khi đăng ký thành công như sau:
5 
Để hiển thị bản đồ trong Android, ta chỉ cần làm 2 việc chính sau: 
 Hiệu chỉnh tệp AndroidManifest.xml bằng cách thêm vào thành phần <uses- library> để khai báo sử dụng thư viện “com.google.android.maps” và quyền truy cập Internet trong thành phần <uses-permission>. 
 Thêm thành phần MapView vào giao diện chương trình, để hiện thị bản đồ. Hình ảnh bản đồ được hiển thi thông qua MapView Một số tùy chỉnh với MapView Để thay đổi các chế độ hiển thị khác nhau trên MapView, ta có thể dùng các hàm: 
 setSatellite(): hiển thị chế độ vệ tinh 
 setStreetView(): hiển thị chế độ đường phố (hiện nay chỉ hỗ trợ một số nước) 
 setTraffic(): hiển thị chế độ giao thông 
Với lớp MapController, ta có thể hướng đến một vị trí nào đó trên bản đồ bằng hàm animateTo(), hoặc thiết lập mức khung nhìn (zoom: tối đa là 21) thông qua hàm setZoom().
6 
2.2. Định vị vị trí hiện tại người dùng 
Lớp LocationManger hỗ trợ định vị vị trí người dùng. Thông qua hàm requestLocationUpdates(), ta có thể thực hiện yêu cầu cập nhật vị trí người dùng. Hàm này có 4 tham số: 
 provider: GPS_PROVIDER, NETWORK_PROVIDER 
 minTime: khoảng thời gian tối thiểu giữa các lần cập nhật vị trí 
 minDistance: khoảng cách tối thiểu giữa các lần cập nhật vị trí 
 listener thừa kế từ lớp LocationListener và có 4 hàm cần nạp chồng: 
 onLocationChanged(): được gọi khi vị trí thay đổi 
 onProviderDisabled(): được gọi khi nhà cung cấp (provider) không được kích hoạt 
 onProviderEnabled(): được gọi khi nhà cung cấp (provider) đã kích hoạt 
 onStatusChanged(): được gọi khi trạng thái nhà cung cấp (provider) thay đồi 
2.3. Tìm kiếm địa điểm gần nhất vị trí người dùng 
Sử dụng kết quả truy vấn trên trang www.maps.google.com vào ứng dụng thông qua việc truyền các tham số vào đường dẫn http://maps.google.com/maps?parameters. Các tham số sau được dùng trong ứng dụng: 
 Tham số q (query) : nội dung tìm kiếm (atm, hotel, restaurant…) 
 Tham số sll ( search latitude longitude ): tọa độ của vị trí cần tìm kiếm 
 Tham số num ( number ): số lượng địa điểm trả về 
 Tham số output: định dạng trả về (kml, html, js…) 
Ứng với kết quả trả về là kml (html), sau đó dữ liệu sẽ được phân tích lại để hiển thị thông tin cần thiết cho người dùng.
7 
Ví dụ: Thông qua url sau: http://maps.google.com/maps?q=atm&sll=21.029505,105.850566&num=20&output=kml Ta có kết quả trả về ở dạng kml: 
2.4. Chức năng chỉ đường từ vị trí hiện tại đến vị trí khác 
Sử dụng Google Direction API 
• Cho phép chỉ ra hướng đi giữa các địa điểm 
• Các địa điểm có thể ở dạng: 
– Chuỗi: Nguyễn Thị Minh Khai, Trần Phú 
– Tọa độ (vĩ độ và kinh độ): latitude, longitude 
Một Direction API request có dạng: 
Trong đó:
8 
• Output: json, xml 
• Parameters: 
– Bắt buộc: origin, destination, sensor. 
– Tùy chọn: mode, units, alternatives … 
Ví dụ: Ứng với url này, ta có kết quả trả về dạng xml bên dưới 
Driving Walking Bicycling 
Metric Imperial
9 
Sau đó, chúng sẽ được phân tích để lấy ra các thông tin cần thiết cho ứng dụng 
2.5. Tính khoảng cách và thời gian giữa điểm bắt đầu và kết thúc 
Distance Matrix API là dịch vụ cho phép tính khoảng cách và thời gian đi giữa điểm bắt đầu và điểm kết thúc. Một Distance Matrix API request có dạng: Output: json, xml
10 
Parameters: Bắt buộc: origins, destinations, sensor. Tùy chọn: mode, language, units, avoid… 
2.6. Google Places Autocomplete API 
Sử dụng Google Places Autocomplete API giúp hỗ trợ trả về địa điểm dựa vào dữ liệu người dùng nhập vào. Một Place Autocomplete request có dạng: Output: json, xml Parameters: 
 Bắt buộc: input, sensor, key 
 Tùy chọn: location, radius, language, types 
Ví dụ: 
Driving Walking Bicycling 
Metric Imperial
11 
2.7. Geocoder 
Lớp Geocoder cho phép chúng ta có thể chuyển từ một tọa độ dạng tên địa điểm thành dạng (kinh độ, vĩ độ) và ngược lại thông qua các hàm getFromLocation() và getFromLocationName(). 
 Geocoding: chuyển tọa độ (kinh độ, vĩ độ) thành địa chỉ thông qua hàm getFromLocation().Ví dụ: latitude=10.766185, longitude=106.638726 => công viên Đầm Sen 
 Reverse geocoding: chuyển tên địa chỉ thành tọa độ (kinh độ, vĩ độ) thông qua hàm getFromLocationName().Ví dụ: công viên Đầm Sen => tọa độ latitude= 10.766185 , longitude=106.638726 
3. Kiến trúc chương trình 
Ứng dụng sử dụng một số web services của google và các lớp có sẳn trong các gói phát triển ứng dụng trên Android. 
Google Maps API Web Services 
Google Places Autocomplete API 
Google Distance Matrix API 
Google Directions API
12 
4. Giao diện 
4.1. Màn hình chính 
4.2 Giao diện chức năng tra cứu theo địa điểm
13 
4.3 Giao diện chức năng cài đặt 
4.4 Giao diện hiển thị kết quả tra cứu địa điểm
14 
4.5 Giao diện hiển thị địa điểm trên bản đồ 
4.6 Giao diện hiển thị chi tiết lộ trình từ điểm bắt đầu đến đích
15 
5. Cài đặt và thử nghiệm 
• Version cài đặt: android 2.1 
• Đã thử nghiệm trên: 
– Trên trình giả lập Android Emulator 
– Trên máy Xperia (Sony Ericsson) 
6. Kết luận và hướng mở rộng 
 Kết luận 
– Chương trình đáp ứng khá tốt những yêu cầu đặt ra, hỗ trợ 2 ngôn ngữ (tiếng Việt và Anh). 
– Giao diện thân thiện với người dùng. 
 Hướng mở rộng 
– Hỗ trợ thêm một số ngôn ngữ khác: tiếng Trung, tiếng Nhật… 
– Hỗ trợ chỉ đường bằng giọng nói. 
7. Tài liệu tham khảo 
[1] Wei-Meng Lee (2011), Beginning Android Application Development, Wiley, Indianapolis. [2] Sayed Y. Hashimi, Satya Komatineni, Dave MacLean (2010), Pro Android 2, Apress, USA. 
[3] http://developer.android.com 
[4]http://code.google.com/apis/maps/documentation/webservices/ 
[5]http://mapki.com/wiki/Google_Map_Parameters

Contenu connexe

Similaire à Báo cáo tìm hiểu và xây dựng ứng dụng map trên android

Hướng dẩn sử dụng Leaflet cơ bản
Hướng dẩn sử dụng Leaflet cơ bảnHướng dẩn sử dụng Leaflet cơ bản
Hướng dẩn sử dụng Leaflet cơ bảnMinhtuan Chau
 
Android location sensor programming
Android location sensor programmingAndroid location sensor programming
Android location sensor programmingPhuoc Nguyen
 
Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1TranQuangChien
 
Sức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng web
Sức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng webSức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng web
Sức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng webTuyet Tam
 
Quản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NETQuản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NETTrung Thành Nguyễn
 
Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1TranQuangChien
 
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trungTim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trungNgo Trung
 
Báo cáo tuần 1
Báo cáo tuần 1Báo cáo tuần 1
Báo cáo tuần 1ThongErik
 
Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Nat Galacticos
 
Hướng dẫn modul hàn kim loại Solidworks (Demo)
Hướng dẫn modul hàn kim loại Solidworks (Demo)Hướng dẫn modul hàn kim loại Solidworks (Demo)
Hướng dẫn modul hàn kim loại Solidworks (Demo)Trung tâm Advance Cad
 

Similaire à Báo cáo tìm hiểu và xây dựng ứng dụng map trên android (20)

Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Hướng dẩn sử dụng Leaflet cơ bản
Hướng dẩn sử dụng Leaflet cơ bảnHướng dẩn sử dụng Leaflet cơ bản
Hướng dẩn sử dụng Leaflet cơ bản
 
Android location sensor programming
Android location sensor programmingAndroid location sensor programming
Android location sensor programming
 
Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1
 
Luận văn: Kỹ thuật về tạo bóng cứng Shadow Mapping, HOT
Luận văn: Kỹ thuật về tạo bóng cứng Shadow Mapping, HOTLuận văn: Kỹ thuật về tạo bóng cứng Shadow Mapping, HOT
Luận văn: Kỹ thuật về tạo bóng cứng Shadow Mapping, HOT
 
Đề tài: Tìm hiểu kỹ thuật tạo bóng cứng shadow mapping, HAY
Đề tài: Tìm hiểu kỹ thuật tạo bóng cứng shadow mapping, HAYĐề tài: Tìm hiểu kỹ thuật tạo bóng cứng shadow mapping, HAY
Đề tài: Tìm hiểu kỹ thuật tạo bóng cứng shadow mapping, HAY
 
Lab04 mapview
Lab04 mapviewLab04 mapview
Lab04 mapview
 
Sức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng web
Sức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng webSức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng web
Sức mạnh của jsf 2, phần 1 hợp lý hóa việc phát triển ứng dụng web
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
 
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đĐề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAY
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAYĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAY
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAY
 
Quản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NETQuản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NET
 
Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1Bao cao thuc tap tuan 1
Bao cao thuc tap tuan 1
 
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trungTim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
 
Báo cáo tuần 1
Báo cáo tuần 1Báo cáo tuần 1
Báo cáo tuần 1
 
Timer kernel linux
Timer kernel linuxTimer kernel linux
Timer kernel linux
 
Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1
 
Đồ Án Nhận Dạng Mặt Người Trên Matlab
Đồ Án Nhận Dạng Mặt Người Trên MatlabĐồ Án Nhận Dạng Mặt Người Trên Matlab
Đồ Án Nhận Dạng Mặt Người Trên Matlab
 
Bao cao Athena
Bao cao AthenaBao cao Athena
Bao cao Athena
 
Hướng dẫn modul hàn kim loại Solidworks (Demo)
Hướng dẫn modul hàn kim loại Solidworks (Demo)Hướng dẫn modul hàn kim loại Solidworks (Demo)
Hướng dẫn modul hàn kim loại Solidworks (Demo)
 

Báo cáo tìm hiểu và xây dựng ứng dụng map trên android

  • 1. 1 TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN CUỐI KỲ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG ĐỀ TÀI: ỨNG DỤNG TRA CỨU ĐỊA ĐIỂM TRÊN ANDROID GVHD: ThS. Phan Nguyệt Minh SVTH: Nhóm 04 Lê Anh Toàn K34.104.090 Trần Công Minh K34.104.051 Lê Quang Phước K34.104.063 TP.HCM-2011
  • 2. 2 Mục Lục 1. Giới thiệu .................................................................................................................. 3 1.1. Mục tiêu ............................................................................................................. 3 1.2. Chức năng chính ................................................................................................. 3 2. Giới thiệu một số kỹ thuật sử dụng trong ứng dụng ................................................... 3 2.1. Hiển thị bản đồ và một số tùy chỉnh .................................................................... 3 2.2. Định vị vị trí hiện tại người dùng ........................................................................ 6 2.3. Tìm kiếm địa điểm gần nhất vị trí người dùng .................................................... 6 2.4. Chức năng chỉ đường từ vị trí hiện tại đến vị trí khác ......................................... 7 2.5. Tính khoảng cách và thời gian giữa điểm bắt đầu và kết thúc ............................. 9 2.6. Google Places Autocomplete API ..................................................................... 10 2.7. Geocoder .......................................................................................................... 11 3. Kiến trúc chương trình ............................................................................................ 11 Google Maps API Web Services .................................................................................... 11 4. Giao diện ................................................................................................................ 12 4.1. Màn hình chính................................................................................................. 12 4.2 Giao diện chức năng tra cứu theo địa điểm ....................................................... 12 4.3 Giao diện chức năng cài đặt .............................................................................. 13 4.4 Giao diện hiển thị kết quả tra cứu địa điểm ....................................................... 13 4.5 Giao diện hiển thị địa điểm trên bản đồ ............................................................ 14 4.6 Giao diện hiển thị chi tiết lộ trình từ điểm bắt đầu đến đích .............................. 14 5. Cài đặt và thử nghiệm ............................................................................................. 15 6. Kết luận và hướng mở rộng ..................................................................................... 15 7. Tài liệu tham khảo .................................................................................................. 15
  • 3. 3 1. Giới thiệu 1.1. Mục tiêu Mục tiêu của đề tài là xây dựng ứng dụng tra cứu địa điểm như nhà hàng, máy ATM… bên cạnh đó ứng dụng có thể xác định vị trí hiện tại của người dùng và cho phép tìm các địa điểm xung quanh người dùng. Ngoài ra, ứng dụng còn cho phép xem lộ trình đường đi từ vị trí hiện tại đến điểm đích một cách chi tiết và trực quan. 1.2. Chức năng chính Hiển thị bản đồ, phóng to thu nhỏ bản đồ, cho phép thay đổi các chế độ hiển thị bản đồ như: chế độ đường phố (street view), chế độ vệ tinh (satellite) Hỗ trợ tìm các địa điểm thông dụng, cho phép người dùng có thể thêm địa điểm tìm kiếm Định vị vị trí hiện tại người dùng Hỗ trợ tìm kiếm địa điểm chính xác, gần nhất với vị trí người dùng Tích hợp chức năng chỉ đường từ vị trí hiện tại đến vị trí khác Hỗ trợ giao diện tiếng Việt và Anh. 2. Giới thiệu một số kỹ thuật sử dụng trong ứng dụng 2.1. Hiển thị bản đồ và một số tùy chỉnh Cách đăng ký một Api Key và hiển thị bản đồ trong Android MapView là một điều khiển giúp chúng ta có thể hiển thị bản đồ một cách dễ dàng và đơn giản. Tuy nhiên để hiển thị được, ta cần đăng ký một Api Key của Google. Vì sử dụng cơ sở dữ liệu bản đồ của Google nên ta phải đăng ký một Api Key để có thể kết nối đến cơ sở dữ liệu của Google và sử dụng nó. Sau đây, ta sẽ tìm hiểu cách đăng ký một Api Key. Để đăng ký một Api Key, ta phải lấy được mã chứng nhận MD5 của ứng dụng:  Đầu tiên, ta sao chép tệp “debug.keystore” ở thư mục “C:Documents and Settingsusername.Android” vào ổ đĩa C.  Sau đó, dùng công cụ keytool.exe của java ( nằm ở thư mục bin của jre, chẳng hạn C:Program FilesJavajre6bin) để lấy mã MD5 trong tệp “debug.keystore”.
  • 4. 4 Ta vào Start > Run, gõ cmd, sau đó chỉ dẫn đến thư mục bin chứa keytool.exe và gõ lệnh: Keytool –list –alias androiddebugkey –keystore “C:debug.keystore” – storepass android -keypass android Ta sẽ thu được mã MD5:  Tiếp theo, ta truy cập vào địa chỉ http://code.google.com/android/maps-api- signup.html và dùng mã MD5 lấy được để đăng ký Api Key. Giao diện sau khi đăng ký thành công như sau:
  • 5. 5 Để hiển thị bản đồ trong Android, ta chỉ cần làm 2 việc chính sau:  Hiệu chỉnh tệp AndroidManifest.xml bằng cách thêm vào thành phần <uses- library> để khai báo sử dụng thư viện “com.google.android.maps” và quyền truy cập Internet trong thành phần <uses-permission>.  Thêm thành phần MapView vào giao diện chương trình, để hiện thị bản đồ. Hình ảnh bản đồ được hiển thi thông qua MapView Một số tùy chỉnh với MapView Để thay đổi các chế độ hiển thị khác nhau trên MapView, ta có thể dùng các hàm:  setSatellite(): hiển thị chế độ vệ tinh  setStreetView(): hiển thị chế độ đường phố (hiện nay chỉ hỗ trợ một số nước)  setTraffic(): hiển thị chế độ giao thông Với lớp MapController, ta có thể hướng đến một vị trí nào đó trên bản đồ bằng hàm animateTo(), hoặc thiết lập mức khung nhìn (zoom: tối đa là 21) thông qua hàm setZoom().
  • 6. 6 2.2. Định vị vị trí hiện tại người dùng Lớp LocationManger hỗ trợ định vị vị trí người dùng. Thông qua hàm requestLocationUpdates(), ta có thể thực hiện yêu cầu cập nhật vị trí người dùng. Hàm này có 4 tham số:  provider: GPS_PROVIDER, NETWORK_PROVIDER  minTime: khoảng thời gian tối thiểu giữa các lần cập nhật vị trí  minDistance: khoảng cách tối thiểu giữa các lần cập nhật vị trí  listener thừa kế từ lớp LocationListener và có 4 hàm cần nạp chồng:  onLocationChanged(): được gọi khi vị trí thay đổi  onProviderDisabled(): được gọi khi nhà cung cấp (provider) không được kích hoạt  onProviderEnabled(): được gọi khi nhà cung cấp (provider) đã kích hoạt  onStatusChanged(): được gọi khi trạng thái nhà cung cấp (provider) thay đồi 2.3. Tìm kiếm địa điểm gần nhất vị trí người dùng Sử dụng kết quả truy vấn trên trang www.maps.google.com vào ứng dụng thông qua việc truyền các tham số vào đường dẫn http://maps.google.com/maps?parameters. Các tham số sau được dùng trong ứng dụng:  Tham số q (query) : nội dung tìm kiếm (atm, hotel, restaurant…)  Tham số sll ( search latitude longitude ): tọa độ của vị trí cần tìm kiếm  Tham số num ( number ): số lượng địa điểm trả về  Tham số output: định dạng trả về (kml, html, js…) Ứng với kết quả trả về là kml (html), sau đó dữ liệu sẽ được phân tích lại để hiển thị thông tin cần thiết cho người dùng.
  • 7. 7 Ví dụ: Thông qua url sau: http://maps.google.com/maps?q=atm&sll=21.029505,105.850566&num=20&output=kml Ta có kết quả trả về ở dạng kml: 2.4. Chức năng chỉ đường từ vị trí hiện tại đến vị trí khác Sử dụng Google Direction API • Cho phép chỉ ra hướng đi giữa các địa điểm • Các địa điểm có thể ở dạng: – Chuỗi: Nguyễn Thị Minh Khai, Trần Phú – Tọa độ (vĩ độ và kinh độ): latitude, longitude Một Direction API request có dạng: Trong đó:
  • 8. 8 • Output: json, xml • Parameters: – Bắt buộc: origin, destination, sensor. – Tùy chọn: mode, units, alternatives … Ví dụ: Ứng với url này, ta có kết quả trả về dạng xml bên dưới Driving Walking Bicycling Metric Imperial
  • 9. 9 Sau đó, chúng sẽ được phân tích để lấy ra các thông tin cần thiết cho ứng dụng 2.5. Tính khoảng cách và thời gian giữa điểm bắt đầu và kết thúc Distance Matrix API là dịch vụ cho phép tính khoảng cách và thời gian đi giữa điểm bắt đầu và điểm kết thúc. Một Distance Matrix API request có dạng: Output: json, xml
  • 10. 10 Parameters: Bắt buộc: origins, destinations, sensor. Tùy chọn: mode, language, units, avoid… 2.6. Google Places Autocomplete API Sử dụng Google Places Autocomplete API giúp hỗ trợ trả về địa điểm dựa vào dữ liệu người dùng nhập vào. Một Place Autocomplete request có dạng: Output: json, xml Parameters:  Bắt buộc: input, sensor, key  Tùy chọn: location, radius, language, types Ví dụ: Driving Walking Bicycling Metric Imperial
  • 11. 11 2.7. Geocoder Lớp Geocoder cho phép chúng ta có thể chuyển từ một tọa độ dạng tên địa điểm thành dạng (kinh độ, vĩ độ) và ngược lại thông qua các hàm getFromLocation() và getFromLocationName().  Geocoding: chuyển tọa độ (kinh độ, vĩ độ) thành địa chỉ thông qua hàm getFromLocation().Ví dụ: latitude=10.766185, longitude=106.638726 => công viên Đầm Sen  Reverse geocoding: chuyển tên địa chỉ thành tọa độ (kinh độ, vĩ độ) thông qua hàm getFromLocationName().Ví dụ: công viên Đầm Sen => tọa độ latitude= 10.766185 , longitude=106.638726 3. Kiến trúc chương trình Ứng dụng sử dụng một số web services của google và các lớp có sẳn trong các gói phát triển ứng dụng trên Android. Google Maps API Web Services Google Places Autocomplete API Google Distance Matrix API Google Directions API
  • 12. 12 4. Giao diện 4.1. Màn hình chính 4.2 Giao diện chức năng tra cứu theo địa điểm
  • 13. 13 4.3 Giao diện chức năng cài đặt 4.4 Giao diện hiển thị kết quả tra cứu địa điểm
  • 14. 14 4.5 Giao diện hiển thị địa điểm trên bản đồ 4.6 Giao diện hiển thị chi tiết lộ trình từ điểm bắt đầu đến đích
  • 15. 15 5. Cài đặt và thử nghiệm • Version cài đặt: android 2.1 • Đã thử nghiệm trên: – Trên trình giả lập Android Emulator – Trên máy Xperia (Sony Ericsson) 6. Kết luận và hướng mở rộng  Kết luận – Chương trình đáp ứng khá tốt những yêu cầu đặt ra, hỗ trợ 2 ngôn ngữ (tiếng Việt và Anh). – Giao diện thân thiện với người dùng.  Hướng mở rộng – Hỗ trợ thêm một số ngôn ngữ khác: tiếng Trung, tiếng Nhật… – Hỗ trợ chỉ đường bằng giọng nói. 7. Tài liệu tham khảo [1] Wei-Meng Lee (2011), Beginning Android Application Development, Wiley, Indianapolis. [2] Sayed Y. Hashimi, Satya Komatineni, Dave MacLean (2010), Pro Android 2, Apress, USA. [3] http://developer.android.com [4]http://code.google.com/apis/maps/documentation/webservices/ [5]http://mapki.com/wiki/Google_Map_Parameters