Qua khóa luận này, em đã học tập được nhiều thứ mà em chưa từng biết đến, hiểu rõ hơn về các quy trình cũng như cách vận hành và làm ra một hệ thống ứng dụng đã đề ra.. Qua quá trình ngh
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
TRẦN TRUNG KIÊN
KHÓA LUẬN TỐT NGHIỆP
ỨNG DỤNG TÌM KIẾM VÀ CHIA SẺ CHUYẾN ĐI
Finding and Sharing Journey Application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP HỒ CHÍ MINH, 2021
Trang 2KHÓA LUẬN TỐT NGHIỆP
ỨNG DỤNG TÌM KIẾM VÀ CHIA SẺ CHUYẾN ĐI
Finding and Sharing Journey Application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN THS NGUYỄN THỊ THANH TRÚC
TP HỒ CHÍ MINH, 2021
Trang 33
THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin
Trang 4
4
LỜI CẢM ƠN
Tục ngữ Việt Nam có câu: “Không thầy đố mày làm nên” Thật vậy, nếu không
có sự hướng dẫn của cô thì em không thể hoàn thành đồ án đúng tiến độ Để hoàn thành khóa luận này, em xin gửi lời cảm ơn chân thành nhất đến cô Nguyễn Thị Thanh Trúc - người đã tận tình hướng dẫn em Qua khóa luận này, em đã học tập được nhiều thứ mà
em chưa từng biết đến, hiểu rõ hơn về các quy trình cũng như cách vận hành và làm ra một hệ thống ứng dụng đã đề ra Em đã gặp rất nhiều khó khăn trong quá trình thực hiện nhưng nhờ sự tận tâm, cũng như sự góp ý của cô cho báo cáo của em đã giúp em định hướng tốt hơn khi làm đồ án và các hướng phát triển có thể cho ứng dụng
Đến nay, khóa luận của em cơ bản hoàn thành, em không thể không nhớ đến sự giúp đỡ của cô Tuy nhiên, với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của sinh viên, đồ án này của em không thể tránh khỏi những sai lầm và thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp của cô để em có điều kiện bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn cho công việc thực tế sau này
Một lần nữa, em rất biết ơn sự hỗ trợ to lớn của cô Chúc cô luôn dồi dào sức khỏe, hạnh phúc và thành công hơn nữa trong sự nghiệm của mình
Trang 55
MỤC LỤC
THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP 3
LỜI CẢM ƠN 4
MỤC LỤC 5
DANH MỤC HÌNH 7
DANH MỤC BẢNG 8
TÓM TẮT KHÓA LUẬN 9
Chương 1 TỔNG QUAN 10
1.1 Giới thiệu 10
1.2 Khảo sát hiện trạng 11
1.3 Khó khăn đề tài 13
1.4 Mục tiêu đề tài 14
1.5 Cách thức hoạt động 14
1.5.1 Người điều khiển phương tiện 15
1.5.2 Người đi nhờ xe 15
1.6 Tổng kết 15
Chương 2 CƠ SỞ LÝ THUYẾT 16
2.1 Xamarin 16
2.1.1 Các ưu điểm của Xamarin 17
2.1.2 Khuyết điểm 18
Trang 66
2.2 API 19
2.3 Azure 20
2.4 Google Map API 21
2.5 OpenRouteService 22
2.6 Xamarin.Forms.GoogleMaps 23
2.7 Cách chọn và tìm kiếm 26
2.8 Phân tích 27
2.8.1 Vấn đề chung 27
2.8.2 Vấn đề riêng 28
Chương 3 THỰC HIỆN 30
3.1 Thiết kế 30
3.1.1 Sơ đồ Use case 30
3.1.2 Danh sách tác nhân hệ thống 31
3.1.3 Danh sách usecase 31
3.1.4 Đặc tả usecase và sơ đồ hoạt động 32
3.1.5 Sơ đồ tuần tự 46
3.2 Giao diện 49
Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51
4.1 Kết luận 51
4.2 Hướng phát triển 52
4.2.1 Giao tiếp 52
Trang 77
4.2.2 Tìm kiếm nhanh hơn 52
4.2.3 Mở rộng phạm vi hoạt động 52
4.2.4 Đăng ký nhanh 53
TÀI LIỆU THAM KHẢO 54
DANH MỤC HÌNH Hình 1.1 Ứng dụng Đi Chung 11
Hình 1.2 Hình ảnh ứng dụng theo vnexpress.net 12
Hình 1.3 Ứng dụng GOVNU 13
Hình 2.1 Sự khác nhau giữa cách lập trình truyền thống và Xamarin Forms 16
Hình 2.2 Hình ảnh một số API biểu thị trên Swagger 20
Hình 2.3 Thiết lập trên Azure 21
Hình 2.4 Bản đồ của OpenRouteService 23
Hình 2.5: Demo về Xamarin.Forms.GoogleMaps 24
Hình 4.1 Màn hình đăng nhập có 2 nút đăng ký với tài khoản Google và Facebook 53
Trang 88
DANH MỤC BẢNG
Bảng 2.1 So sánh Xamarin.Forms.Maps và Xamarin.Forms.GoogleMaps [1] 25Bảng 2.2 Các nền tảng hỗ trợ [1] 26
Trang 99
TÓM TẮT KHÓA LUẬN
Ứng dụng Tìm kiếm và chia sẻ chuyến đi sử dụng Xamarin Forms làm nền tảng
để lập trình về cả Font-end và Back-end Bên cạnh đó sử dụng Net Core để tạo API phục
vụ cho việc gửi dữ liệu và xử lý ở server Với sự hỗ trợ của nhà trường, tài khoản Microsoft được sử dụng vài tính năng của Azure miễn phí trong khoảng thời gian nghiên cứu và thực hiện Cho nên em sử dụng đó làm server phục vụ cho việc xử lý API và cơ
sở dữ liệu Về vấn đề xử lý đường đi và tính toán khoảng cách em sử dụng OpenRouteService, một nền tảng hỗ trợ API liên quan đến đường đi miễn phí
Là 1 nền tảng lập trình ứng dụng di động cross-platform, Xamarin Forms cho phép các nhà phát triển phần mềm xây dựng các ứng dụng di động đa nền tảng sử dụng các thành phần giao diện cơ bản của hệ điều hành như: Pages, Layouts, Views, Controls Khi chạy chương trình, mỗi thành phần giao diện của Xamarin Forms sẽ được chuyển hóa sang các thành phần giao diện tương ứng với mỗi nền tảng Với quá trình làm việc với các đồ án môn học và làm việc, em có nhiều kinh nghiệm trong việc sử dụng C# và XAML để tạo ứng dụng Cho nên em lựa chọn Xamarin Forms để thực hiện đề tài này
Ngoài việc sử dụng các ứng dụng thông thường của Net Core để tạo API, em còn
sử dụng SignalR phục vụ việc kết nối real-time các người dùng với nhau Áp dụng cho việc người dùng có thể nhận thông tin nhanh chóng khi gửi yêu cầu hay nhắn tin
Vì việc sử dụng một số API của Google Maps là mất phí cho nên em đã tìm kiếm một giải pháp khác, đó là OpenRouteService OpenRouteService cung cấp nhiều API cần thiết cho việc tìm kiếm đường đi và tính toán khoảng cách trong thời gian nhanh chóng mà miễn phí
Qua quá trình nghiên cứu, em đã nắm bắt được các ứng dụng cũng như cách sử dụng các công cụ nói trên, qua đó phục vụ cho việc thực hiện đề tài suôn sẻ hơn
Trang 10Bên cạnh việc cùng tuyến đường thì có một số địa điểm tập trung người đi làm công sở ở cùng khu vực Việc di chuyển của một người chỉ giới hạn ở cung giờ hành chính, và tuyến đường chỉ là từ nhà đến cơ quan hay công ty và ngược lại
Một hình ảnh thực tế là nhà xe của trường đang quá tải sau mỗi năm, mặc dù khu vực để xe đã và đang mở rộng nhiều hơn trước rất nhiều Trước đây nhà xe chỉ quá tải trong khoảng thời gian có tổ chức thi giữa kỳ hoặc cuối kỳ Khoảng thời gian này tập trung nhiều sinh viên nên hiện tượng ùn tắc chỉ xảy ra trong khoảng 1 hoặc 2 tuần Nhưng hiện nay với các ngành mới mở ra, lượng sinh viên tăng lên cùng với điều kiện đời sống cao hơn, nhiều sinh viên đã sở hữu riêng cho mình xe máy riêng Cho nên việc quá tải trong nhà gửi xe là điều tất yếu Các biện pháp như tăng kích thước nhà xe cũng chỉ là vấn đề thời gian để việc quá tải tiếp diễn vào các năm tiếp theo
Giải pháp thiết thực là làm sao để giảm thiểu lượng xe gửi vào nhà xe nhưng vẫn đảm bảo lượng sinh viên đi học đầy đủ như bình thường Các hình thức đi chung xe sẽ
hỗ trợ rất nhiều cho việc giải quyết bài toán này
Hiện này cũng có một số ứng dụng giúp cho việc đi chung này nhưng cũng có nhiều vấn đề gây trở ngại cho sinh viên hay người sử dụng, hoặc không giải quyết được vấn đề mình đặt ra Một số ứng dụng lại dành cho xe ô tô hoặc là taxi, việc đi chung ở đây là giải quyết việc chia tiền để giảm bớt chi phí đi lại Vấn đề chúng ta đang đặt ra là cho xe máy, cho nên những ứng dụng này không giải quyết được
Trang 1111
Vì những lý do và điều kiện ở tên, một ứng dụng giúp đỡ những người có khả năng chở thêm người và những người cần được chở ghép cặp để đi chung với nhau là điều cần thiết Giúp giảm lượng phương tiện tham gia giao thông, qua đó tiết kiệm nhiên liệu và hạ thấp lượng khí thải ra môi trường
1.2 Khảo sát hiện trạng
Hình thức di chuyển tiết kiệm này phổ biến ở các nước phát triển như mô hình đi chung ô tô Covoiturage ở Pháp, Bla Bla Car ở châu Âu, hay ứng dụng Ridewith của Google
Những loại phương tiện phổ biến ở Việt Nam hiện nay lại là xe máy, vì vậy ứng dụng sẽ đánh mạnh vào những người điều khiển xe máy, điều mà các ứng dụng đi chung khác không chú trọng Mặc dù cũng có nhiều hãng xe công nghệ nhưng điều mà ứng dụng này hướng tới là dành cho những công dân bình thường muốn giúp đỡ cộng đồng cũng như môi trường
Một số ứng dụng đi chung ở Việt Nam hiện nay lại chú trọng vào đi xe ô tô hoặc hình thức đi chung xe taxi như ứng dụng Đi Chung bên dưới:
Hình 1.1 Ứng dụng Đi Chung
Trang 122017
Hình 1.2 Hình ảnh ứng dụng theo vnexpress.net
Trang 1313
Một ứng dụng khác của bạn Nguyễn Lê Trọng Đạt có tên GOVNU Ứng dụng này chỉ đơn thuần là danh sách các điểm đầu và điểm cuối như các nhà xe chở khách có tuyến cố định Ưu điểm của ứng dụng là dễ dàng đăng ký sử dụng Nhược điểm là không
có tính linh hoạt trong lựa chọn địa điểm
Trang 141.4 Mục tiêu đề tài
Mục tiêu nhỏ là dành cho các bạn sinh viên Khu đô thị Đại học Quốc gia TPHCM
có thể cùng nhau đến trường, qua đó mở rộng quy mô cho cả nước Mong muốn góp phần giúp ích cho cộng đồng
Mục tiêu thứ hai là dành cho các bạn cần đồng đội để đi du lịch hay phượt chung Dựa trên nền tảng của mục tiêu thứ nhất, giúp các bạn có thể tìm bạn để đi chung với nhau
Kết quả mong đợi:
− Hoàn thành ứng dụng và có thể áp dụng vào thực tế Khu đô thị Đại học Quốc gia TPHCM
− Số lượng sinh viên tham gia sử dụng phần mềm ở Khu đô thị Đại học Quốc gia TPHCM là trên 50%
− Mở rộng quy mô sử dụng ra toàn thành phố Hồ Chí Minh
1.5 Cách thức hoạt động
Vì đây không phải hình thức xe ôm công nghệ nên mọi hoạt động đều được lên lịch trước giúp cho cả tài xế và người đi nhờ xe có thể chủ động sắp xếp thời gian với nhau Tuy nhiên vẫn có thể lập tức tìm xe hay phát tín hiệu có thể cho đi nhờ mọi lúc Chi tiết hoạt động được phân tích bên dưới
Trang 1515
1.5.1 Người điều khiển phương tiện
Người điều khiển phương tiện (tài xế) sẽ thiết lập trước thời gian di chuyển và địa điểm tới Ứng dụng sẽ thiết lập quãng đường đi cho tài xế và cho phép tùy chỉnh cung đường mà người đó đi, tương tự như Google Map Sau khi hoàn tất, ứng dụng sẽ gửi thông tin để server xử lý Nếu có người muốn đi chung, ứng dụng sẽ thông báo Hai người đi chung xe với nhau sẽ có thể nhắn tin với nhau thông qua trực tiếp ứng dụng để trao đổi thêm, ví dụ như địa điểm đón, thời gian đi
1.5.2 Người đi nhờ xe
Sau khi chọn trước thời gian đi và địa điểm đến, ứng dụng sẽ tính toán dự trên dữ liệu của tài xế, có thể cung đường đi ngang qua đích đến của người đi nhờ, hoặc là hai người tới cùng một nơi Màn hình thông báo kết quả phù hợp, người dùng sẽ chọn trong danh sách người mình muốn đi cùng Sau khi kết nối và nhắn tin với tài xế, lịch trình được chốt sẽ hủy việc quét tìm kiếm của cả hai
mở rộng nhà xe nhiều lần nhưng vẫn chưa thể đáp ứng được hết nhu cầu sử dụng
Các hình thức chia sẻ xe ở Việt Nam chưa thực sự phổ biến và đa phần là ô tô, nên một ứng dụng chia sẻ xe máy là một điều mới mẻ và hấp dẫn
Cũng vì mới mẻ nên việc kêu gọi sử dụng ban đầu có thể gặp nhiều khó khăn, cũng như nhiều vấn đề có thể phát sinh ngoài ý muốn Nhưng cũng có thể từ từ khắc
Trang 1616
phục qua thời gian thử nghiệm ở phạm vi nhỏ trước khi đưa ra sử dụng ở mô hình lớn hơn
Chương 2 CƠ SỞ LÝ THUYẾT
Thông qua quá trình tìm hiểu về cách thức hoạt động cũng như các tính năng thường có của một ứng dụng đi chung xe Dựa theo những gì được học ở trường, có các
cơ sở lý thuyết để làm đề tài này như dưới đây
2.1 Xamarin
Dựa vào các kiến thức đã có trong quá trình học, sử dụng WPF framework để tạo ứng dụng trên Window đã cho em các kiến thức về nền tảng này Nhận thấy Xamarin cũng có nét tương đồng nên em đã chọn để nghiên cứu xây dựng ứng dụng Bên cạnh
đó, Xamarin có thể cho phép tiết kiệm tới 70% công việc phát triển trên nền tảng di động thứ hai bằng cách sử dụng lại source code
Hình 2.1 Sự khác nhau giữa cách lập trình truyền thống và Xamarin Forms
Trang 1717
Là 1 nền tảng lập trình ứng dụng di động cross-platform (có nghĩa là code một lúc có thể chạy trên được cả iOS lẫn Android), Xamarin có những đặc điểm riêng biệt, hiếm có so với các framework hiện tại trên thị trường
2.1.1 Các ưu điểm của Xamarin
2.1.1.1 Tái sử dụng code tại nhiều chỗ, giảm thời gian làm ứng dụng trên nhiều nền tảng
Xamarin sử dụng ngôn ngữ C# cùng với framework.Net để tạo ra ứng dụng cho mọi nền tảng bất kì Khi bạn tạo ứng dụng di động trên Xamarin, bạn sử dụng cùng ngôn ngữ là C#, API và cấu trúc dữ liệu hay logic của ứng dụng nên thường là 90% code chức năng có thể được dùng trên iOS và Android
Qua đó có thể giảm đáng kể chi phí và thời gian phát triển ứng dụng di động cho
2 nền tảng phổ biến nhất Ngoài ra có nhiều IDE hỗ trợ rất tốt mà miễn phí với nó như Xamarin IDE (dành cho Mac) hay Visual Studio (dành Windows)
2.1.1.2 Performance gần như native
Các số liệu performances là tương đương khi so sánh với các số liệu performance của Java cho Android và Objective-C hoặc Swift cho ứng dụng phát triển ứng dụng iOS native Hơn thế nữa, performance của Xamarin liên tục được cải thiện để phù hợp hoàn toàn với tiêu chuẩn của lập trình native
Ngoài ra, nền tảng Xamarin cung cấp thêm các giải pháp để testing và theo dõi hoạt động của ứng dụng Xamarin Test Cloud kết hợp với công cụ Xamarin Test Recorder cho phép bạn chạy các UI test tự động và xác định các vấn đề về performance trước khi ứng dụng release Tuy nhiên, dịch vụ này có tính phí nhưng cũng đáng lưu tâm
Trang 1818
2.1.1.3 Hỗ trợ tất cả phần cứng
Với Xamarin, giải pháp của bạn sẽ giúp cách chức năng của ứng dụng đạt được native-level, loại trừ tất cả vấn đề tương thích với phần cứng, sử dụng plugins và APIs đặc biệt để làm việc với các chức năng thiết bị thông thường đa nền tảng Ngoài khả năng truy cập vào API riêng biệt cho mỗi nền tảng, Xamarin còn hỗ trợ liên kết với thư viện native Từ đó, functionality được tối ưu hóa và đạt được mức độ native tốt hơn với
ít chi phí hơn
2.1.1.4 Nhiều thư viện hỗ trợ làm ứng dụng cực nhanh có sẵn
Component Xamarin cung cấp đến hàng ngàn UI controls tùy chỉnh, các charts, biểu đồ, themes đa dạng và các chức năng mạnh mẽ khác có thể được thêm vào ứng dụng chỉ với vài cú click Điều này bao gồm quá trình xử lý payment built-in (như Stripe chẳng hạn), tích hợp Beacons và các thiết bị di động, các services notification box push, giải pháp lưu trữ đám mây, các tính năng streaming multimedia và hơn thế nữa
2.1.2 Khuyết điểm
Bên cạnh các ưu điểm trên thì Xamarim vẫn có các khuyết điểm, tuy nhiên những khuyết điểm này đều có thể chấp nhận được
Hỗ trợ chậm các updates mới nhất của các hệ điều hành mobile
Điều này phụ thuộc hoàn toàn vào đội ngũ developer của Xamarin Khi iOS hoặc Android tung ra các phiên bản mới, phải mất một khoảng thời gian để thực hiện những thay đổi hay đưa vào một plugins mới, v.v Mặc dù Xamarin khẳng định sẽ hỗ trợ cùng lúc với những cập nhật mới nhất nhưng vẫn có những thời điểm bị trì hoãn
Trang 1919
2.1.2.1 Giới hạn truy cập vào thư viện mã nguồn mở
Native development giúp thói quen sử dụng công nghệ mã nguồn mở trở nên quen thuộc, rộng rãi hơn Với Xamarin, cả developer đều phải sử dụng duy nhất môt component được cung cấp bởi Xamarin và một số mã nguồn mở Net
Trong khi native development có rất nhiều lựa chọn thư viện opensource cho ứng dụng phát triển điện thoại Android và iOS Rất tiếc là vẫn còn nhiều native library hay vẫn chưa hỗ trợ cho Xamarin
2.1.2.2 Apps thực hiện chậm hơn và yêu cầu nhiều dung lượng hơn trên thiết bị
Ứng dụng Xamarin lớn hơn, nặng hơn so với ứng dụng native So sánh với ứng dụng native nó chiếm nhiều hơn vài Mb so với Java/Objective C tương ứng kích thước của một ứng dụng code bằng xamarin là 5Mb, trong khi code bằng Objective C chỉ chiếm
200 Kb Càng sử dụng nhiều API, càng nhiều lưu trữ bị chiếm trên thiết bị
2.2 API
Em sử dụng Net Core để viết API hỗ trợ cho việc truyền và nhận dữ liệu từ server
về ứng dụng Mỗi khi client gọi bất kỳ một API nào, ngoại trừ API đăng nhặp hoặc đăng
ký, client đều phải kèm theo token được cấp mỗi khi đăng nhập Việc này tăng tính bảo mật và còn hỗ trợ cho việc thấy thông tin chuẩn xác hơn
Ngoài các chức năng thông thường, em có sử dụng thư viện SignalR ASP.NET SignalR là một thư viện cho các lập trình viên ASP.NET đơn giản hóa quá trình thêm chức năng web real-time trong phát triển ứng dụng Lúc người dùng đăng nhập đồng thời em cũng kết nối với một hub được tạo ở server Thông qua đó, người dùng có thể nhắn tin với nhau hoặc đặt lịch real-time mà không cần phải load lại hay khởi động lại ứng dụng
Trang 20sở dữ liệu, DevOps, nhận dạng media và web service Với việc hỗ trợ tài khoản miễn phí lên tới 12 tháng nên đây là phương án khá kinh tế và hiệu quả
Cấu trúc Deloy App trên Azure
− Tạo Resource Group
− Tạo App Services Plan
− Tạo App Services
− Tạo SQL Server
− Tạo SQL Database
Trang 2121
Hình 2.3 Thiết lập trên Azure
2.4 Google Map API
Ứng dụng Google Map là một dịch vụ bản đồ trực tuyến trên web và app miễn phí do Google phát hành và quản lý, ứng dụng hỗ trợ nhiều dịch vụ, tính năng cho người dùng nhưng phổ biến nhất là dò đường, chỉ đường, tìm vị trí; hiển thị những tuyến đường tối ưu cho từng phương tiện tham gia giao thông, ngoài ra còn hướng dẫn cách bắt xe và chuyển tuyến xe dành cho người tham gia các phương tiện lưu thông công cộng (xe bus), hiển thị những địa điểm xung quanh vị trí người dùng hoặc vị trí chỉ định như ATM, trạm xăng, bệnh viện,…
Vậy Google Map API là gì? Hiểu đơn giản đây là một phương pháp cho phép một website B có thể sử dụng dịch vụ hoặc hiển thị nội dung của một trang web khác, ở đây
là là website A – Google Map (thông qua Map API), dịch vụ bản đồ của website A (Map)
sẽ được nhúng vào website B (Website cá nhân), tại trang web B có thể sử dụng những dịch vụ mà Google Map cung cấp thông qua Google Map API như: di chuyển, zoom, đánh dấu trên bản đồ,…
Hiện nay, các ứng dụng xây dựng trên nền tảng Google Maps như Grab thường
sử dụng Google Map API để nhúng bản đồ vào trang web hoặc ứng dụng thông qua ngôn ngữ Javascripts, chính vì vậy mà việc sử dụng API từ Google cũng khá dễ dàng Đồng thời Map API cũng đã được nâng cấp lên phiên bản mới, không chỉ hỗ trợ cho máy tính
Trang 2222
và website truyền thống mà còn cả thiết bị di động, giúp ứng dụng hoạt động nhanh hơn
và hiệu quả hơn
Hỗ trợ miễn phí bởi Google với các ứng dụng có lượng truy cập thấp
2.5 OpenRouteService
OpenRouteService không chỉ là một dịch vụ định tuyến: nó sử dụng một loạt các dịch vụ dựa trên dữ liệu OSM có thể được sử dụng trong tất cả các loại ứng dụng và kịch bản khác nhau Hiện tại, các dịch vụ sau đã được triển khai trong khuôn khổ của OpenRouteService
Dịch vụ Chỉ đường xác định các tuyến đường du lịch và thông tin điều hướng theo các tiêu chí đa dạng Điều này đã được hiện thực hóa cho: ô tô: nhanh nhất, ngắn nhất, được khuyến nghị một số tùy chọn để tránh các công cụ, đường hầm, v.v nhiều cấu hình xe hạng nặng (Giao hàng, Lâm nghiệp, Xe buýt ) với nhiều tùy chọn có thể tùy chỉnh xe đạp (MTB, xe đạp đua, tuyến đường an toàn nhất và hơn thế nữa) người đi
bộ (bình thường và đi bộ đường dài) định tuyến xe lăn
Dịch vụ Pois là một dịch vụ cung cấp quyền truy cập vào danh mục trực tuyến để tìm vị trí của một địa điểm, sản phẩm hoặc dịch vụ cụ thể hoặc gần nhất
Dịch vụ Isochrones tính toán một đa giác đại diện cho khu vực có thể đến được trong một khoảng thời gian nhất định dựa trên mạng lưới đường phố xung quanh một vị trí nhất định
Dịch vụ mã hóa địa lý cung cấp Bộ mã hóa địa lý / Bộ mã hóa địa lý ngược; bộ
mã hóa địa lý chuyển đổi mô tả của một vị trí, chẳng hạn như tên địa điểm, địa chỉ đường phố hoặc mã bưu điện, thành mô tả chuẩn hóa của vị trí với dạng hình học điểm
Trang 2424
Hình 2.5: Demo về Xamarin.Forms.GoogleMaps
Có cách chức năng được nêu bên dưới hỗ trợ cho việc đánh dấu, vẽ tuyến đường,
hỗ trợ cho cả 2 nền tảng android và ios
Các chức năng: dựa theo bài viết gốc trên github
Trang 26Tọa độ của người dùng cũng sẽ được yêu cầu lúc sử dụng ứng dụng nhằm nhanh chóng xác định điểm đón Vì chức năng này là không bắt buộc cho nên nếu không được cấp phép truy cập của người dùng, ứng dụng vẫn hoạt động bình thường
Dựa theo điểm khởi hành và điểm đến của tài xế, ta sẽ có “tuyến đường” của tài
xế thông qua Google Map API Tương tự, người đi nhờ cũng có điểm khởi hành và điểm đến nhưng chỉ cần điểm khởi hành nằm trên tuyến đường mà tài xế chọn sẽ được tiếp tục so sánh Lý tưởng nhất là khi 2 người trùng điểm đến, còn không thì sẽ có 2 trường hợp xảy ra:
− Người đi nhờ có điểm đến xa hơn tài xế một chút hoặc có vị trí địa lý khác nhau nhưng khoảng cách đó có thể đi bộ được
− Người đi nhờ có điểm đến gần hơn nhưng vẫn nằm trên tuyến đường hoặc từ điểm gần nhất có thể đi bộ được
Trang 2727
Những trường hợp tối ưu hơn sẽ được ưu tiên trước, vì như vậy sẽ tối đa được số người có thể đi cùng nhau Tránh việc một số người thì không đi tới nơi còn có người thì không có ai chở đi
2.8 Phân tích
2.8.1 Vấn đề chung
2.8.1.1 Các vấn đề phát sinh
Nhiều người quan ngại việc sử dụng ứng dụng không đảm bảo hoặc có các vấn
đề phát sinh, nhưng hiện tại việc sử dụng ứng dụng là tự nguyện và không có các ràng buộc nào Ứng dụng sẽ đảm bảo các vấn đề thiết yếu được mô tả bên dưới, nhưng vẫn
có nhiều điều cần người dùng tự giác và sử dụng quan điểm cá nhân để đánh giá, như việc xem xét có muốn đi chung với ai đó hay không hoặc lối suy nghĩ của mỗi người về một cá nhân,… việc này không thể quản lý bằng ứng dụng được
2.8.1.2 Điểm đánh giá
Mỗi tài khoản sẽ có điểm để đánh giá và các bình luận của người đã đi chung trước đó, qua đó để có cái nhìn khách quan mà không cần phải tiếp xúc trực tiếp Điểm cũng liên quan đến việc ưu tiên tìm kiếm cho các cần lần sau, điểm càng thấp thì độ ưu tiên tìm kiếm càng thấp, nhằm loại dần các tài khoản có người dùng thiếu ý thức
2.8.1.3 Xác minh
Các vấn đề xác minh sẽ được làm thủ công, tức là mỗi lúc có người đăng ký mới
sẽ có thông báo cho admin kiểm tra Ban đầu chỉ thực hiện trong quy mô nhỏ thì chỉ cần một lượng người kiểm duyệt nhỏ, quy mô càng mở rộng thì đội ngũ này sẽ tăng lên Việc kiểm tra thủ công nhằm tránh những sai sót khi xử lý tự động