Trên thực tế đã có rất nhiều phần mềm chỉ đường đi nhưng nó chỉ có thể chỉ đường từ vị trí của bạn đến một vị trí đã có sẵn trên bản đồ ví dụ như: một địa danh nào đó đã đăng kí trên goo
Trang 1VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ ĐIỆN TỬ - THÔNG TIN
ĐỒ ÁNTỐT NGHIỆP ĐẠI HỌC
Giảng viên hướng dẫn: TS ĐẶNG HẢI ĐĂNG
Sinh viên thực hiện : PHẠM MẠNH HÀ
Lớp: K16B Khóa: 2013 -2017 Hệ: Đại học chính quy
Hà Nội, tháng 05/2017
Trang 2GVHD: TS.Đặng Hải Đăng -2- SVTH: Phạm Mạnh Hà
VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ ĐIỆN TỬ - THÔNG TIN
ĐỒ ÁNTỐT NGHIỆP ĐẠI HỌC
Giảng viên hướng dẫn: TS ĐẶNG HẢI ĐĂNG
Sinh viên thực hiện : PHẠM MẠNH HÀ
Lớp: K16B Khóa: 2013 -2017 Hệ: Đại học chính quy
Hà Nội, tháng 05/2017
Trang 3VIỆN ĐẠI HỌC MỞ HÀ NỘI CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT
NAM
Độc lập - Tự do – Hạnh phúc
KHOA CN ĐIỆN TỬ - THÔNG TIN
ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Họ và tên sinh viên: ……PHẠM MẠNH HÀ……… …… Lớp:K16B Khoá: 16 (2013-2017) Ngành đào tạo: Công nghệ Kỹ thuật điện tử, Truyền thông Hệ đào tạo: ĐHCQ
(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)
Trang 4GVHD: TS.Đặng Hải Đăng -4- SVTH: Phạm Mạnh Hà
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……… ………
…… ……… ………
……… ……… ………
……… ……… ………
……… ……… …………
……… ……… …
……… ………
… ………
Ngày tháng năm 2017 T.S Đặng Hải Đăng NHẬN XÉT CỦA GIÁO VIÊN DUYỆT ĐỌC ……… ………
……… ………
……… ………
……… ………
……… ………
…… ………
Ngày tháng năm 2017
Trang 5LỜI CẢM ƠN
Trên thực tế, không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu học tập tại Viện Đại học Mở đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý thầy cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến các giảng viên bộ môn trường Viện Đại học mở đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho sinh viên chúng em trong suốt thời gian học tập tại trường Và đặc biệt,
em xin chân thành cảm ơn Ts Đặng Hải Đăng đã tận tâm, nhiệt tình hướng dẫn trong suốt quá trình thực hiện đề tài
Do nội dung kiến thức tương đối rộng, thời gian có hạn và sự hiểu biết còn hạn chế nên trong quá trình thực hiện đề tài sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự đóng góp ý kiến của quý thầy cô và các bạn
Em xin chân thành cảm ơn
Hà Nội, tháng 05 năm 2017
Trang 6GVHD: TS.Đặng Hải Đăng -6- SVTH: Phạm Mạnh Hà
MỞ ĐẦU
Ngày nay, khi đất nước ngày càng phát triển, đời sống kinh tế ngày càng nâng cao, số lượng người sử dụng các thiết bị điện thoại thông minh - smartphone ngày càng nhiều, cùng với đó là giao thông phát triển ngày càng có nhiều đường đi phức tạp hơn
Trên thực tế đã có rất nhiều phần mềm chỉ đường đi nhưng nó chỉ có thể chỉ đường từ vị trí của bạn đến một vị trí đã có sẵn trên bản đồ (ví dụ như: một địa danh nào đó đã đăng kí trên google map, ), nên hầu như mọi hoạt động tìm kiếm đường đến vị trí của một người bạn chúng ta đều suy nghĩ theo chiều hướng là nhà bạn đó ở gần điểm nào đã có trên google map sau đó dùng bản đồ đi đến địa điểm đó, rồi từ địa điểm đó ta gọi điện cho người bạn đến đón, hoặc chỉ đường đến… như thế chúng ta sẽ mất khá nhiều thời gian để tìm đường vì phải qua nhiều bước gồ ghề Đó chính là lý do khiến em thực hiện đề tài : “ Ứng dụng tìm đường và xác định điện thoại” làm đồ án
Sử dụng hình thức tìm đường mới chính xác và ít tốn kém thời gian hơn
Em xin chân thành cảm ơn
Trang 7CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
1.2 Giới thiệu sơ bộ về đề tài
1.2.1 Mục tiêu đề tài
- Tìm hiểu và xây dựng hệ thống chỉ ra được vị trí hiện tại của hai người ở trên bản đồ, từ đó chỉ đường đi phù hợp với phương tiện giao thông mà người cần tìm chọn
- Người dùng có thể chat thời gian thực
Tên đề tài Ứng dụng tìm đường và xác định điện thoại
Phạm vi của đề tài Xây dựng ứng dụng di động chạy trên nền tảng Android
Một số tính năng cơ bản
Bên người dùng:
+ Chức năng tìm đường đi trên bản đồ và vẽ đường đi + Chức năng gửi tin nhắn, tìm bạn bè, kết bạn qua số điện thoại,
Bên máy chủ:
+ Đón nhận thông tin từ GPS từ người dùng để xác định
vị trí người dùng + Xử lý thông tin và đưa ra đường đi phù hợp với phương tiện người dùng
Tính mới của đề tài + Chức năng trong một thời điểm xác định vị trí của
Trang 8GVHD: TS.Đặng Hải Đăng -8- SVTH: Phạm Mạnh Hà
nhiều người + Chức năng xác định vị trí dựa vào điện thoại mà không
cần nhập địa chỉ
1.3 Định hướng các nhiệm vụ cần thực hiện và công nghệ sử dụng
1.3.1 Giới thiệu về hệ điều hành Android
1.3.1.1 Lịch sử hình thành
Android là một hệ điều hành dành cho thiết bị di động như smartphone, tablet hay netbook Android do Google phát triển dựa trên nền tảng mã nguồn mở Linux OS (Kernel 2.6) cho máy di động và những phần mềm trung gian (middleware) để hỗ trợ các ứng dụng mà người sử dụng cần đến Một cách định nghĩa không quá chuyên môn thì có thể coi Android là tên một nền tảng mở cho thiết bị di động của Google (gồm hệ điều hành, middleware và một số ứng dụng cơ bản)
Android là hệ điều hành mở mã nguồn chính duy nhất với 12 triệu dòng mã bao gồm 3 triệu dòng mã XML, 2.8 triệu dòng mã C, 2.1 triệu dòng Java và 1.75 triệu dòng C++
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do
1.3.1.2 Các phiên bản của HĐH Android
Andorid 1.5 (Cupcake): Ra mắt tháng 4 năm 2009 Đây là bản Android đầu tiên được Google gọi tên theo các món đồ ăn với chữ cái bắt đầu được xếp theo thứ tự alphabet
Android 1.6 (Donut): Ra mắt tháng 9/2009: Phiên bản này giúp nâng cao trải nghiệm trên kho ứng dụng Android Market với thiết kế mang tông màu xanh trắng đặc trưng của Android, có thể hiển thị các ứng dụng free và trả phí hàng đầu, những ứng dụng bên thứ ba cũng bắt đầu xuất hiện nhiều hơn
Trang 9Android 2.0/2.1 (Eclair): Ra mắt tháng 10/2009: Lúc mới ra mắt chỉ được dùng độc nhất cho chiếc Motorola Droid của nhà mạng Verizon, một trong những chiếc điện thoại đã kích hoạt cho một kỷ nguyên Android lớn mạnh như ngày hôm nay
Android 2.2 (Froyo): Ra mắt tháng 5/2010 và mục tiêu của chương trình Nexus
đã xuất hiện rõ hơn bao giờ hết: Nexus One là chiếc điện thoại đầu tiên được nâng cấp lên Android 2.2, sớm hơn nhiều so với tất cả các hãng khác
Android 2.3 (Gingerbread): Ra mắt tháng 12/2010: Google giới thiệu nó với nhiều tính năng mới, tập trung vào việc phát triển game, đa phương tiện và phương thức truyền thông mới Android 2.3 có tên mã là Gingerbread, hiện bộ SDK Android 2.3 dành cho các nhà phát triển cũng đã được Google phát hành
Android 3.x (Honeycomb): Ra mắt tháng 2/2011: Đây là phiên bản hệ điều hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail ) Honeycomb là phiên bản Android dành riêng cho máy tính bảng
Android 4.0 (Ice Cream Sandwich): Cuối năm 2011, Google chính thức giới thiệu điện thoại Galaxy Nexus, thiết bị đầu tiên trên thị trường sử dụng Android 4.0 Ice Cream Sandwich Có thể nói Android 4.0 là sự thay đổi lớn trong lịch sử phát triển của Android Android 4.0 hỗ trợ một bộ font mới tên là Roboto được cho là tối ưu hóa để dùng trên các màn hình độ phân giải càng ngày càng cao hơn, đồng thời để hiển thị được nhiều thông tin hơn trên màn hình
Android 4.1 (Jelly Bean): Android 4.1 được giới thiệu tại hội nghị Google I/O với nhiều cải tiến đáng giá và rất được mong đợi Đây cũng là lúc chiếc Nexus 7 được chính thức ra mắt với sự hợp tác giữa Google với Asus
Android 4.2 (Jelly Bean): Ngày 30/10/2012, Google chính thức tuyên bố cập nhật
hệ điều hành Android của hãng lên phiên bản 4.2 và vẫn giữ nguyên tên gọi "Jelly Bean" (có nghĩa là kẹo dẻo đậu) Được hãng gọi là "một hương vị mới của Jelly Bean"
Android 4.3 (Jelly Bean): Lại thêm một thế hệ Jelly Bean nữa và lần này là Android 4.3 Ngày 24/7/2013, Google đã chính thức ra mắt hệ điều hành này song song với chiếc Nexus 7 (2013) Đây là phiên bản Android mới nhất đang có mặt trên thị trường và đi kèm những tính năng mới như hỗ trợ kết nối Bluetooth Smart, bộ API
Trang 10Android 7.0 (Nougat) là một phiên bản phát hành của hệ điều hành Android Lần đầu được phát hành dưới dạng một bản dựng beta vào ngày 9 tháng 3, 2016, nó đã được chính thức phát hành vào ngày 22 tháng 8, 2016, với các thiết bị Nexus được nhận bản cập nhật đầu tiên
Android 7.0 giới thiệu những thay đổi đáng chú ý tới hệ điều hành và nền tảng phát triển của nó, bao gồm khả năng hiển thị nhiều ứng dụng trên màn hình cùng một lúc bằng cách chia màn hình, hỗ trợ trả lời thông báo trực tiếp trong thẻ thông báo, cũng như một môi trường Java dựa trên OpenJDK và hỗ trợ hàm API vẽ đồ họa Vulkan , và cập nhật hệ thống "liên tục" trên các thiết bị được hỗ trợ
1.3.1.3 Căn bản với Android
Cài đặt android để lập trình
Để lập trình android, chúng ta cần biết kiến thức java căn bản Đólà những class, package, cùng các từ khóa như public, private, protected, thành thạo các lệnh cơ bản như if, for(), switch(), while(), sửdụng được các lệnh như Integer.parseInt() hay String.valueOf() Gói java.util là gói hỗ trợ nhiều lớp rất mạnh được sử dụng trên mọi nền tảng, ngoài ra các gói như java.io, java.net cũng được chú trọng
Để lập trình Android, người lập trình cần sử dụng một bộ SDK của Google và tích hợp nó vào một IDE như Eclipse
Theo nhiều kinh nghiệm, sử dụng Eclipse tốt hơn vì chương trình này có nhiều tính năng hỗ trợ lập trình Android, còn Netbeans thì plugin cho Android vẫn chưa hoàn thiện
Một số thành phần cơ bản của android
Layout : được dùng để quản lý các thành phần giao diện khác theo một trật tự nhất định
Trang 11FrameLayout: Layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình
LinearLayout: Thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc) Đây là layout được sử dụng nhiều nhất
RelativeLayout: Thêm các thành phần con dựa trên mối quan hệ với các thành phần khác hoặc với biên của layout
TableLayout: Thêm các thành phần con dựa trên 1 lưới các ô ngang và dọc AbsoluteLayout: Thêm các thành phần con dựa theo tọa độ x, y
Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải Thường khi lập trình nên kết hợp nhiều layout với nhau để tạo ra giao diện lập trình viên mong muốn
Content Provider là 1 trong 4 thành phần cơ bản của 1 ứng dụng Android thường
Dữ liệu thường được lưu trữ ở file hệ thống, hoặc trong một SQLite database Danh bạ, Call log, cấu hình cài đặt trên điện thoại là dữ liệu dưới dạng Content Provider
Content Provider hiện thực một tập phương thức chuẩn mà các ứng dụng khác có thể truy xuất và lưu trữ dữ liệu của loại nó điều khiển
Tuy nhiên, những ứng dụng không thể gọi các phương thức trực tiếp Hơn thế chúng dùng lớp Content Resolver và gọi những phương thức đó Một Content Resolver có thể giao tiếp đến nhiều content provider; nó cộng tác với các provider để quản lý bất kỳ giao tiếp bên trong liên quan
Trang 12GVHD: TS.Đặng Hải Đăng -12- SVTH: Phạm Mạnh Hà
1.3.1.4 Sử dụng google map API
Khái niệm Google map API
Google Maps là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của Google nổi bật là dẫn đường Nó cho phép thấy bản đồ đường xá, đường đi cho xe đạp, cho người đi bộ
và xe hơi, và những địa điểm kinh doanh trong khu vực cũng như khắp nơi trên thế giới
Khái niệm MAP API
Đó là một phương thức cho phép 1 website B sử dụng dịch vụ bản đồ của site A (gọi là Map API) và nhúng vào website của mình (site B) Site A ở đây là google map, site B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của google, có thể rê chuột, zoom, đánh dấu trên bản đồ
Các ứng dụng xây dựng trên maps được nhúng vào trang web cá nhân thông qua các thẻ javascripts do vậy việc sử dụng API google rất dễ dàng
Google Map API đã được nâng cấp lên phiên bản thứ 3 Phiên bản này hỗ trợ không chỉ cho các máy để bàn truyền thống mà cho cả các thiết bị di động Nhanh hơn
và nhiều hơn các ứng dụng
Điều quan trọng là các dịch vụ hoàn toàn miễn phí với việc xây dựng một ứng dụng nhỏ Trả phí nếu đó là việc sử dụng cho mục đích kinh doanh, doanh nghiệp
Cách sử dụng Google map API
+ Đăng ký sử dụng Google map API:
Tất cả các ứng dụng Maps API nên tải Maps API sử dụng một API key Một key API cho phép bạn kiểm soát các ứng dụng của mình và cũng là việc google có thể liên lạc với bạn về ứng dụng có ích bạn đang xây dựng
Trang 13Hình 1.1: Map API key của google
- Tổng quan: Lớp phủ (overlays) là các đối tượng trên bản đồ và được gắn với vĩ
độ, kinh độ cho nên nó sẽ di chuyển cùng bản đỗ khi ta kéo hoặc zoom bản đồ Overlays phản ánh các đối tượng mà bạn thêm vào bản đồ như points, line, areas, hoặc các "collections of object" tạm gọi là bộ sưu tập đối tượng, các đối tượng mà bạn muốn xây dựng Vd: 1 khu vực công nghiệp, khu vực sông, khu vui chơi giải trí
- Các loại lớp phủ: markers, polylines, areas, info windows, polygons
- Thêm các lớp phủ: Đầu tiên phải xác định lớp phủ nào cần xây dựng để có thể hiên thị trên Map Thêm lớp phủ trực tiếp lên bản đồ sử dụng phương thức setmap()
Ví dụ sau thêm lớp phủ Markers để đánh giấu điểm trên map
Trang 14GVHD: TS.Đặng Hải Đăng
Markers
- Markers dùng để xác
trên vĩ độ và kinh độ Theo m
điểm đánh dấu Hoặc muốn m
- Các trường được xây d
+ Position(bắt buộc): Quy
n một icon của mình thì ta gọi phương thức setIcon()
c xây dựng trong new google.maps.Marker:
c): Quy định là tọa độ LatLng của điểm được đánh dQuy định đối tượng bản đồ được đánh dấu nếu thu
ây nó sẽ thay thế cho Markers.setMap(map)
n): Hình ảnh tùy chọn mà bạn muốn hiển thị thay th
n này thay thế cho marker.setIcon(link đến hình
n): Tiêu đề của địa điểm
n): Thuộc tính động của điểm đánh dấu, thể
ánh dấu Nếu TRUE tính động được khởi động
ức chuyển động của điểm đánh dấu CÓ 2 cách th
Hình 1.2 Ví dụ markers
ấu địa điểm dựa
a google làm hình ảnh hiện lên
Trang 15Polylines
- Polylines dùng để thể hiện đường kết nối trên bản đồ dựa vào các tọa độ Các đoạn thẳng được hiển thị với các tùy chọn cho nó như màu sắc, độ đậm nhạt, độ rộng cùa đường Phải có tối đa 2 điểm để tạo nên 1 đường thẳng
Hình 1.3 Vẽ đường thẳng trên bản đồ
Chỉ dẫn đường trên bản đồ sử dụng service google
- Google service cung cấp cho chúng ta một tiện ích rất hay là chỉ dẫn đường cho người sử dụng Khi người dùng muốn đi từ điểm đầu tới đích Dịch vụ trả về môt hướng dẫn men theo các con đường
- Ứng dụng này được sử dụng phổ biến trong google map, chức năng chỉ dẫn đường "direction"
Hình 1.4 Sử dụng google service tìm đường đi trên bản đồ
Trang 16GVHD: TS.Đặng Hải Đăng -16- SVTH: Phạm Mạnh Hà
Retrofit:
- Kết nối và giao tiếp với server để lấy dữ liệu và thêm dữ liệu
Mongodb:
- MongoDB là một mã nguồn mở và là một tập tài liệu dùng cơ chế NoSQL để
truy vấn,được viết bởi ngôn ngữ C++ Chính vì được viết bởi C++ nên nó có khả năng
tính toán với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện nay
- MongoDB lưu tin nhắn trên RAM, do đó sẽ có hiệu suất đọc và ghi nhanh hơn, mà việc gửi tin nhắn phải đảm bảo về việc phản hồi nhanh nên cần thiết cho ứng dụng
- MongoDB thật sự rất phổ biến nhưng không phải lúc nào ta sử dụng nó cũng tốt, có những trường hợp không nên sử dụng và nên sử dụng:
• Nếu websitecó tính chất INSERT cao, bởi vì mặc định MongoDB có sẵn cơ chế ghi với tốc độ cao và an toàn
• Website ở dạng thời gian thực nhiều, nghĩa là nhiều người thao tác với ứng dung Nếu trong quá trình load bị lỗi tại một điểm nào đó thì nó sẽ bỏ qua phần đó nên
sẽ an toàn
• Website có nhiều dữ liệu quá, giả sử web bạn có đến 10 triệu records thì đó là cơn ác mộng với MYSQL Bởi vì MongoDB có khả năng tìm kiến thông tin liên quan cũng khá nhanh nên trường hợp này nên dùng nó
• Máy chủ không có hệ quản trị CSDL, trường hợp này thường sẽ phải sử dụng SQLITE hoặc là MongoDB
Fresco của facebook:
Giúp chúng ta có thể update ảnh lên làm ảnh đại diện được
Nó sẽ up data và gửi ảnh lên server, server sẽ lưu lại, khi cần server sẽ trả lại
Trang 17CHƯƠNG 2:PHÂN TÍCH, THIẾT KẾ, CÀI ĐẶT HỆ THỐNG
2.1 Xác định yêu cầu hệ thống
1 Đăng nhập Quản lý việc đăng nhập của người dùng
2 Đăng ký Thực hiện việc ghi danh vào cơ sở dữ liệu
3 Tìm kiếm đường đi Tìm kiếm đường đi dựa vào GPS và google
map API
4 Tìm kiếm bạn bè
Tìm kiếm bạn bè mà đã đăng kí trên server
hệ thống, thông qua số điện thoại hoặc tên người dùng
5 Cập nhật vị trí hiện tại
Click vào biểu tượng cập nhật để cập nhật vị trí hiện tại của mình thông qua mạng và GPS
6 Gửi tin nhắn Người gửi gửi tin nhắn lên server từ server
sẽ gửi đến cho người nhận
Bảng 2.1: Yêu cầu về các chức năng hệ thống
Yêu cầu phi chức năng
- Giao diện ứng dụng đơn giản, dễ dàng tương tác
- Hoạt động trên nền tảng Android
- Không có sự chậm trễ trong các thao tác
- Kết nối mạng nhanh, đảm bảo an toàn
Trang 18GVHD: TS.Đặng Hải Đăng -18- SVTH: Phạm Mạnh Hà
2.2 Phân tích yêu cầu Xác định các tác nhân tham gia hệ thống
nh các tác nhân tham gia hệ
1 Người dùng
Người dùng đăng nhập, đăng kí, nhắn tin, tìm kiếm bạn bè, tiến hành chọn đường đi tối ưu nhất cho mình
2 Server
Xử lý việc đăng ký, quản lý đăng nhập, tìm bạn bè, nhắn tin, tìm đường đi, định vị
Mã hóa dữ liệu và xử lý đồng bộ dữ liệu
Bảng 1.2: Tác nhân tham gia hệ thống
2.3 Thiết kế hệ thống
2.3.1 Khảo sát hệ thống
Hệ thống sử dụng cho người chuẩn bị và đang tham gia giao thông nên cần được chạy trên thiết bị dễ sử dụng và số người sử dụng nhiều nhất, đó là điện thoại di động Chính vì vậy để người sử dụng có thể sử dụng thuận tiện nhất thì ứng dụng sẽ được chạy trên hệ điều hành android
Để có thể thực hiên chức năng chat thời gian thực đòi hỏi cần một server xử lý nhanh, chính xác là đặc biệt là có thể tùy biến được dữ liệu gửi lên nên server sẽ được viết bằng PHP và Apche vì nó đáp ứng được rất tốt yêu cầu của hệ thống, có thể xử lý bất đồng bộ xử lý được nhiều request đồng thời
Thông tin cần được lưu trữ sao cho việc đưa vào và lấy ra một cách nhanh chóng,
có thể tự xóa sau một khoảng thời gian, và dữ liệu luôn luôn được cập nhật một cách nhanh nhất Để đáp ứng các yêu cầu này thì redis rất thích hợp, vì nó chạy rất nhanh, truy xuất thuận tiện, và có cập nhật liên tục
Trang 19Để hiển thị trên điện thoại lộ trình mà mình sẽ đi, và vị trí của mình, thì google maps và GPS hoàn toàn đáp ứng được yêu cầu này, nên hệ thống sẽ sử dụng các service của google
2.3.2 Sơ đồ cấu tạo chung