Tải bản đầy đủ

Ứng dụng tìm đường và phát hiện điện thoại

ĐỒ ÁN TỐT NGHIỆP

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

Đề tài:

Ứng dụng tìm đường và phát hiện điện thoại

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
GVHD: TS.Đặng Hải Đăng


-1-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

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

Đề tài:

Ứng dụng tìm đường và phát hiện điện thoại

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
GVHD: TS.Đặng Hải Đăng

-2-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

VIỆN ĐẠI HỌC MỞ HÀ NỘI

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT

KHOA CN ĐIỆN TỬ - THÔNG TIN

NAM



Độc lập - Tự do – Hạnh phúc

ĐỀ 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

1/ Tên đề tài TTTN:
…………Ứng dụng tìm đường và phát hiện điện thoại…….………………………………….
…………….………..……….………………………………………………………………….

2/ Nội dung chính:
…………………………………………………………………………………………………
…………………………………………………………………………………………………
………………………………………………………………………………………………..

3/ Cơ sở dữ liệu ban đầu
……………..………..……….………………………………………………………………….
……………………..……….………………………………………………………………….
………………………………………………………………………………………………….

4/ Ngày giao :3/2017
5/ Ngày nộp:15/05/2017
TRƯỞNG KHOA

GIÁO VIÊN HƯỚNG DẪN

(Ký, ghi rõ họ tên)

(Ký, ghi rõ họ tên)

GVHD: TS.Đặng Hải Đăng

-3-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

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

GVHD: TS.Đặng Hải Đăng

-4-

SVTH: Phạm Mạnh Hà

tháng

năm 2017


ĐỒ ÁN TỐT NGHIỆP

LỜ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
Sinh viên thực hiện
Phạm Mạnh Hà

GVHD: TS.Đặng Hải Đăng

-5-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

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.
Nội dung đồ án gồm 3 phần:
Chương 1: Đặt vấn đề và định hướng giải pháp
Chương 2: Phân tích , thiết kế hệ thống, chức năng phần mềm
Chương 3: Kết luận
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.

GVHD: TS.Đặng Hải Đăng

-6-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
1.1. Đặt vấn đề
Như chúng ta đã biết, đất nước ngày càng phát triển, đời sống con người ngày
càng cao, vấn đề về thời gian và nhu cầu đi lại ngày một trở nên cần thiết.
Vì vậy để tiết kiệm thời gian và giúp đỡ người tham gia giao thông lựa chọn con
đường tốt nhất cho lộ trình của mình và dễ dàng tìm được vị trí của người mà mình
muốn đến thì cần phải có một hệ thống giúp người mọi người có thể biết được vị trí
của mình và người kia đang ở đâu, đang ở chỗ nào trên bản đồ để từ đó có thể tìm
đường đi tốt nhất, tiết kiệm thời gian nhất, phù hợp với phương tiện mình đi nhất để
đến vị trí của họ.
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.

1.2.2. Tóm tắt đề tài

Tên đề tài
Phạm vi của đề tài

Ứng dụng tìm đường và xác định điện thoại
Xây dựng ứng dụng di động chạy trên nền tảng Android.
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ố

Một số tính năng cơ
bản

đ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

GVHD: TS.Đặng Hải Đăng

+ Chức năng trong một thời điểm xác định vị trí của

-7-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

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.

GVHD: TS.Đặng Hải Đăng

-8-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Android 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

GVHD: TS.Đặng Hải Đăng

-9-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

OpenGL ES 3.0, bổ sung tính năng sử dụng Wi-Fi để định vị ngay cả khi người dùng
tắt kết nối này đi cùng nhiều thay đổi lớn nhỏ khác.
Android 4.4 (KitKat): Được phát hành 10/2013: Thế hệ kế tiếp của Android là
Android 4.4 và không còn mang tên Jelly Bean nữa mà gọi là KitKat. Google tiết lộ
thêm rằng "mục tiêu của chúng tôi với Android KitKat đó là mang trải nghiệm
Android đáng kinh ngạc đến cho mọi người".
Android 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.

GVHD: TS.Đặng Hải Đăng

-10-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

FrameLayout: 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
có bao gồm:
+ Activity
+ Service
+ Broadcast Receiver
+ Content Provider
Một Content Provider cung cấp một tập chi tiết dữ liệu ứng dụng đến các ứng
dụng khác. Thường được sử dụng khi chúng ta muốn tạo cơ sở dữ liệu dưới dạng
public (các ứng dụng khác có thể truy xuất).
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.

GVHD: TS.Đặng Hải Đăng

-11-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

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.

GVHD: TS.Đặng Hải Đăng

-12-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Hình 1.1: Map API key của google
Lớp phủ trên bản đồ(Overlays)
- Sau khi load được bản đồ, thêm các đoạn code xây dựng lớp phủ sau khi đối
tượng map được khởi tạo
var
map

=

new

google.maps.Map(document.getElementById("map_canvas"), myOptions);.
- 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.

GVHD: TS.Đặng Hải Đăng

-13-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Markers
- Markers dùng để xác định một điểm trên bản đồ hoặc đánh dấấu địa điểm dựa
trên vĩ độ và kinh độ.. Theo mặc
m định sử dụng icon củaa google làm hình ảnh hiện lên
điểm đánh dấu. Hoặc muốn
n một
m icon của mình thì ta gọi phương thứcc setIcon().
- Các trường đượcc xây ddựng trong new google.maps.Marker:
+ Position(bắt buộc):
c): Quy định là tọa độ LatLng của điểm được đánh ddấu.
+ Map(tùy chọn): Quy định
đ
đối tượng bản đồ được đánh dấu. nếuu thu
thuộc tính này
được khai báo trong đây
ây nó sẽ
s thay thế cho Markers.setMap(map).
+ Icon(tùy chọn):
n): Hình ảnh tùy chọn mà bạn muốn hiển thị thay th
thế hình ảnh mặc
định. Dùng tùy chọnn này thay th
thế cho marker.setIcon(link đếnn hình ảnh trong thư
mục).
+ Title(tùy chọn):
n): Tiêu đề
đ của địa điểm.
+ Draggable(tùy chọn):
n): Thuộc
Thu tính động của điểm đánh dấu, thể hiện sự chuyển
động của điểm được đánh
ánh ddấu. Nếu TRUE tính động được khởi động.
+ Animation: Cách thứ
ức chuyển động của điểm đánh dấu.
u. CÓ 2 cách th
thức DRAG,
Bounce.

Hình 1.2 Ví dụ markers

GVHD: TS.Đặng Hải Đăng
ng

-14-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Polylines
- 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 đồ

GVHD: TS.Đặng Hải Đăng

-15-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

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.

GVHD: TS.Đặng Hải Đăng

-16-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

CHƯƠ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

STT

Chức năng

Mô tả

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.
Tìm kiếm bạn bè mà đã đăng kí trên server

4

Tìm kiếm bạn bè

hệ thống, thông qua số điện thoại hoặc tên
người dùng.
Click vào biểu tượng cập nhật để cập nhật vị

5

trí hiện tại của mình thông qua mạng và

Cập nhật vị trí hiện tại

GPS.
6

Người gửi gửi tin nhắn lên server từ server

Gửi tin nhắn

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.

GVHD: TS.Đặng Hải Đăng

-17-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

2.2. Phân tích yêu cầu
Xác định các tác nhân tham gia hệ thống

m gia hệ
STT

Tên tác nhân

Nhiệm vụ
Người dùng đăng nhập, đăng kí, nhắn tin, tìm kiếm

1

Người dùng

bạn bè, tiến hành chọn đường đi tối ưu nhất cho
mình.
Xử lý việc đăng ký, quản lý đăng nhập, tìm bạn bè,

2

Server

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.

GVHD: TS.Đặng Hải Đăng

-18-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Để 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

Hình 2.1:Sơ đồ tổng quát

2.3.3. Đăng kí
Người dùng sẽ dùng nó để đăng kí một tài khoản trên hệ thống, thông qua tài
khoản này để có thể tìm bạn bè, nhắn tin, định vị GPS, gửi lên cho hệ thống.
Sơ đồ làm việc:

GVHD: TS.Đặng Hải Đăng

-19-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Hình 2.2 Sơ đồ đăng kí tài khoản

2.3.4. Đăng
ng nhập
nh
Người dùng sẽ cung cấấp cho hệ thống user và password, hệ thống
ng ki
kiểm tra nếu tài
khoản đã được đăng kí thìì ttự động chuyển sang giao diện chính và tự
ự động cập nhật
ngầm vị trí qua GPS rồi gửii dữ
d liệu lên người dùng, sau đó server xử lí thông qua ddịch
vụ của google map API rồii ccập nhật vị trí của người dùng lên bản đồ.
Sơ đồ làm việc:

GVHD: TS.Đặng Hải Đăng
ng

-20-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Hình 2.3 Sơ đồ đăng nhập

2.3.5. Tìm kiếm bạn
Người dùng sẽ gửi lên hệ thống tên đăng nhập hoặc số điện thoại của người muốn
tìm, sau đó hệ thống sẽ tìm người đó theo thông tin người dùng cung cấp. Nếu tồn tại
người phù hợp với thông tin được cung cấp thì sẽ trả về kết quả cho người dùng, còn
không có thì thông báo không tồn tại.
Sơ đồ làm việc:

GVHD: TS.Đặng Hải Đăng

-21-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Hình 2.4 : Sơ đồ tìm bạn

2.3.6. Nhắn tin
Người gửi chọn người cần gửi tin nhắn, sau đó nhập nội dung tin nhắn, và gửi.
Hệ thống dùng Mongodb:Là để lưu tin nhắn trên RAM , nó 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 ta
dùng mongodb.
Sơ đồ làm việc:

Hình 2.5 sơ đồ nhắn tin
2.3.7. Tìm đường đi
Người dùng chọn người mà muốn theo dõi và phương tiện đi lại, hệ thống sẽ truy
cập vào người muốn theo dõi để lấy tọa độ lần cuối cùng mà họ đăng nhập hệ thống là
GVHD: TS.Đặng Hải Đăng

-22-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

ở vị trí nào. Từ vị trí đó server giao cho google map vẽ đường giữa hai vị trí đó, và đưa
kết quả ra giao diện màn hình.

Hình 2.6 sơ đồ tìm đường

2.4. Chức năng phần mềm
2.4.1. Chức năng định vị điện thoại
Mô tả chung: Chức năng này cho phép định vị người đang sử dụng điện thoại có
cài đặt ứng dụng đang ở vị trí nào trên bản đồ.
Mô tả cách sử dụng: Khi khởi động hệ thống sẽ xuất hiện giao diện bản đồ, khi
người dùng bấm vào nút định vị nó sẽ cho biết vị trí của người đó. Nút này khi được
bấm nó sẽ tự động cập nhật vị trí của người sử dụng. Nếu được bấm lần thứ hai nó sẽ
dừng việc cập nhật vị trí lại.
Giao diện của chức năng

GVHD: TS.Đặng Hải Đăng

-23-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Hình 2.7 Giao diện của chức năng định vị
(Mở rộng: Trong một số trường hợp, có thể điện thoại mất GPS trong trường
hợp đó có thể thêm chức năng định vị bằng cách gửi tin nhắn để biết mình ở đâu).

2.4.2. Chức năng theo dõi vị trí của bạn bè đang online
Mô tả chung: Trong một thời điểm, nó có thể giám sát tối đa 5 điện thoại (những
người có cài đặt hệ thống, kết bạn với người muốn theo dõi và bật chế độ chấp nhận
việc theo dõi của người khác với máy của mình – những người có dấu tích).
Mô tả cách sử dụng: Trên bản đồ của hệ thống, vị trí của những điện thoại được
theo dõi sẽ đươc đánh dấu đồng thời trong danh sách bạn bè những điện thoại đó sẽ
được tích. Khi một điện thoại gửi yêu cầu giám sát đến điện thoại khác phải được yêu
cầu cho phép. Nếu người sử dụng theo dõi hơn 5 số thì hệ thống sẽ cảnh báo và yêu
cầu người đó chọn lại
Giao diện của chức năng:

GVHD: TS.Đặng Hải Đăng

-24-

SVTH: Phạm Mạnh Hà


ĐỒ ÁN TỐT NGHIỆP

Hình 2.8 Giao diện của chức năng theo dõi

Hình 2.9 Giao diện của chức năng theo dõi
2.4.3. Chức năng chỉ đường
Mô tả chung: Chỉ ra đường đi từ điện thoại đang được sử dụng tới điện thoại mà
nó theo dõi, vẽ đường đi trên bản đồ. Trong một thời điểm chỉ có thể chỉ đường tới
một điện thoại
Khi mà mình di chuyển theo đường đó thì hệ thống tự cập nhật lại vị trí của
mình trên đường đi cho đến khi 2 điểm chập lại làm một thì là ta đang ở vị trí người
theo dõi.

GVHD: TS.Đặng Hải Đăng

-25-

SVTH: Phạm Mạnh Hà


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×