1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu osmand và xây dựng ứng dụng minh họa

45 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN ĐỀ TÀI: Tìm hiểu OsmAnd xây dựng ứng dụng minh họa Giảng viên hướng dẫn: Huỳnh Tuấn Anh Sinh viên thực hiện: Phan Phước Đính-17520345 TP.Hồ Chí Minh – Tháng 1/2021 Lời cảm ơn Lời đầu tiên, nhóm chúng em gửi lời cảm ơn đến thầy Huỳnh Tuấn Anh – Giảng viên hướng dẫn mơn Đồ án lớp SE122.L11 Chính nhờ giúp đỡ hết lịng thầy mà nhóm em hồn thiện được đồ án cách suôn sẻ Mặc dù kiến thức nhóm em cịn hạn hẹp nên khơng thể tránh khỏi thiếu sót nhóm em cố gắng hồn thiện đồ án, hạn chế mắc lỗi Trong trình làm đề tài báo cáo, khơng tránh khỏi nhiều điều thiếu sót, mong nhận phản hồi từ thầy để góp phần làm cho báo cáo thêm hoàn thiện Chân thành cảm ơn! SE122.L11 Mục lục Chương Giới thiệu đề tài 1.1 1.2 OsmAnd gì? OsmAnd đóng vai trị sống? 1.3 Cộng đồng OsmAnd 1.4 Các tính bật 1.5 Hướng dẫn sử dụng số tính OsmAnd(bản Free Android) 1.6 Đánh giá OsmAnd(bản Free) Chương Xây dựng ứng dụng minh họa tính OsmAnd 2.1 Tổng quan 2.2 Hướng tiếp cận 2.3 Xây dựng tính Navigation 10 2.3.1 Mục đích tính năng: 10 2.3.2 Mô tả sơ chức năng: 10 2.3.3 Sơ đồ use-case: 10 2.3.4 Kiến thức vận dụng: 10 2.3.5 Thiết kế giao diện: 10 2.4 Xây dựng tính Xem đồ Offline 15 2.4.1 Mục đích tính năng: 15 2.4.2 Mơ tả tính năng: 15 2.4.3 Chuẩn bị sẵn đồ offline: 16 2.4.4 Thiết kế giao diện: 18 2.5 Xây dựng tính Lưu đường theo file GPX 19 2.5.1 Mục đích tính năng: 19 2.5.2 Mô tả sơ chức năng: 20 2.5.3 Sơ đồ use-case: 20 2.5.4 Kiến thức vận dụng: 20 2.5.5 Thiết kế giao diện: 21 2.6 Xây dựng tính Vẽ đường theo file GPX 26 2.6.1 Mục đích tính năng: 26 2.6.2 Mô tả chức năng: 26 SE122.L11 2.6.3 Sơ đồ use-case: 26 2.6.4 Kiến thức vận dụng: 27 2.6.5 Thiết kế giao diện: 27 2.7 Xây dựng tính Lưu địa điểm yêu thích 29 2.7.1 Mục đích tính năng: 29 2.7.2 Mô tả chức năng: 29 2.7.3 Sơ đồ use-case: 30 2.7.4 Kiến thức vận dụng: 30 2.7.5Thiết kế giao diện: 30 2.8 Xây dựng tính Xem đường tới đích đến với phương tiện khác 35 2.8.1 Mục đích tính năng: 35 2.8.2 Mô tả chức năng: 35 2.8.3 Sơ đồ use-case: 35 2.8.4 Kiến thức vận dụng: 35 2.8.5 Thiết kế giao diện: 35 2.9 Xây dựng tính Vẽ đường minh họa điểm tính khoảng cách 38 2.9.1 Mục đích tính năng: 38 2.9.2 Mô tả chức năng: 38 2.9.3 Sơ đồ use-case: 38 2.9.4 Kiến thức vận dụng: 38 2.9.5 Thiết kế giao diện: 38 Chương Đánh giá, hướng phát triển 42 3.1 Đánh giá 42 3.2 Hướng phát triển 45 3.3 Tài liệu tham khảo 45 SE122.L11 Chương Giới thiệu đề tài 1.1 OsmAnd gì? Hình OsmAnd (OSM Automated Navigation Directions) ứng dụng mã nguồn mở để xem đồ, chỉnh sửa, theo dõi ghi dịch chuyển sử dụng sở liệu OpenStreetMap(OSM) cho việc sử dụng trực tuyến ngoại tuyến Nó bao gồm tính định tuyến điều hướng với hướng dẫn hình ảnh giọng nói, có sẵn trực tuyến ngoại tuyến OsmAnd cho phép người dùng đóng góp trực tiếp vào OpenStreetMap cách báo cáo lỗi, tải lên GPX track, thêm (hoặc chỉnh sửa) POIs(các điểm yêu thích),… 1.2 OsmAnd đóng vai trị sống? OpenStreetMap(bao gồm liệu đồ thành phần máy chủ) ứng dụng OsmAnd di động(Android,IOS) hai dự án mã nguồn mở, hai phải đạt độ xác để đem lại hiệu sử dụng Ví dụ: vấn SE122.L11 đề với liệu đồ (thiếu khóa giá trị, lỗi kết nối đường, không quán, v.v.) khiến OsmAnd điều hướng khơng hiệu bỏ lỡ tuyến đường tốt Dữ liệu đồ ln thường xun cập nhật, ln có hàng trăm, nghìn chỉnh sửa bổ sung lần cập nhật Tương tự, POI(điểm ưa thích) phải cần xem xét liên tục để đảm bảo tính liên quan xác với nhiều nhóm, tổ chức cần di chuyển công việc kinh doanh tháng Việc cung cấp liệu cho máy chủ OpenStreetMap dễ dàng Người dùng việc gửi báo cáo bắt tay vào chỉnh sửa liệu trực tiếp sau vài phút đăng ký 1.3 Cộng đồng OsmAnd OsmAnd dự án phần mềm lớn với hàng triệu người dùng Nhưng số lượng người đóng góp thực cho ứng dụng khơng nhiều Nhà phát triển OsmAnd khuyến khích người dùng có vấn đề giải qua nhiều bước phức tạp vào cập nhật vấn đề cách giải trang Wiki, diễn đàn,… OsmAnd người sau dễ xử lý Nếu người dùng có kiến thức lập trình(Java) đóng góp cách thêm vào tính chỉnh sửa lại mã nguồn nhằm khắc phục vấn đề app 1.4 Các tính bật • Navigation(Điều hướng) Chức cho phép bạn tới điểm đến dễ dàng hướng dẫn giọng nói Tính chạy trực tuyến(tốc độ nhanh) ngoại tuyến(khơng tính phí chuyển vùng nước ngồi) Người dùng chọn điểm xuất phát vị trí tại, POI(vị trí yêu thích) sử dụng địa chỉ; sau để điều hướng đến vị trí, nhấn vào nút Navigation, ứng dụng tạo tuyến đường bắt đầu hướng dẫn đường Ngồi người dùng nhấn phím Home tính chạy chế độ nền, tức nhận lời nhắc từ ứng dụng • Map viewing OsmAnd cung cấp cho bạn khả tuyệt vời để sử dụng đồ Bạn xem, tải xuống tùy chỉnh chúng Cụ thể: ✓ Hiển thị vị trí hướng ✓ Tùy chọn chỉnh đồ theo la bàn hướng chuyển động ✓ Lưu địa điểm quan trọng Favorites ✓ Hiển thị POIs(các điểm ưa thích) xung quanh bạn SE122.L11 ✓ Hiển thị GPX tracks đồ ✓ Hiển thị tên địa điểm phù hợp với ngôn ngữ người dùng, tiếng địa phương ✓ Các kiểu vẽ đồ đa dạng ✓ Hiển thị đường cho loại phương tiện giao thông ✓ … • Quick Action Đây giao diện menu phím tắt linh hoạt cho phép trực tiếp truy cập vào tính bạn cần truy cập thường xuyên • Travel with OsmAnd(hỗ trợ du lịch, tham quan) Tính dựa Wikivoyage, dự án cộng đồng nơi thành viên tình nguyện đóng góp báo thơng tin địa điểm phương tiện giao thông, địa danh, điểm mua sắm,… Ngồi Wikivoyage, tính kết hợp với Wikipedia • Đóng góp trực tiếp cho OsmAnd OsmAnd phần mềm mã nguồn mở luôn trạng thái phát triển Vì người dùng đóng góp vấn đề, tùy chỉnh tính để ứng dụng trở nên tuyệt vời Bạn thơng báo bug đồ, đăng tải GPX tracks POI • Tính cho người bộ, xe,… Với tính này, đồ bao gồm đường bộ, đường xe,… phù hợp cho chuyến đi, hoạt động trời; cung cấp chế độ định tuyến hiển thị đặc biệt cho người bộ, xe,… Ngồi tính cho phép người dùng ghi lại hành trình thơng qua file GPX 1.5 Hướng dẫn sử dụng số tính OsmAnd(bản Free Android) Dưới video sử dụng số tính tiện dụng app OsmAnd free Android Link tải app: https://play.google.com/store/apps/details?id=net.osmand Link video: https://drive.google.com/file/d/1T61KW_yFNwfu66_x1lFGKUgIVw3Mez9B/ view?usp=sharing SE122.L11 1.6 Đánh giá OsmAnd(bản Free) Ưu điểm: ✓ Tính hoạt động xác ✓ Nhiều tính tiện lợi thú vị(Tạo Route Plan, Xem POIs,…) ✓ Các tính trau chuốt, có chiều sâu, mang lại đa dạng: Tính xem đồ có nhiều chế độ, tính Setting có nhiều lựa chọn bật tắt,… ✓ Giao diện tương đối dễ sử dụng ✓ Phù hợp gần đối tượng lưu thông bên ngoài, từ người đến người du lịch, xe phương tiện khác Nhược điểm: Chế độ chuyển phương tiện chưa thấy khác biệt hiệu mang lại: ví dụ đồ người người xe đạp khác màu nền, cịn chi tiết gần y chang,… dẫn đến chưa cần thiết để chuyển qua chế độ Tổng quan: Bên cạnh Google Map, ứng dụng đồ hỗ trợ tuyệt vời với tính trau chuốt, có đa dạng bên trong; bên cạnh có tính lạ gần gũi với thực tế Đây phần mềm ứng dụng mã nguồn mở, hồn tồn tin tương lai ứng dụng nhận cập nhật, thay đổi Chương Xây dựng ứng dụng minh họa tính OsmAnd 2.1 Tổng quan Qua việc tìm hiểu OsmAnd, em thấy tính ứng dụng OsmAnd thú vị, mang lại hiệu thực tế, gần gũi với đời sống ngày Vì vậy, để trau dồi học hỏi, em đặt mục tiêu xây dựng ứng dụng tảng mobile có chức tương tự, gần giống OsmAnd; đáp ứng tính có vài chức lạ 2.2 Hướng tiếp cận Để xây dựng ứng dụng, em đề việc cần làm theo trình tự, tổng hợp bảng bên STT Việc cần làm SE122.L11 Chọn tính dự định làm Mở phần mềm OsmAnd sử dụng tính để xác định đầu vào, đầu ra, use-case sử dụng,… Xác định kiến thức cần vận dụng để xây dựng tính Trong bước này, số tính em tham khảo doc,source mẫu để tham khảo Thực xây dựng mã nguồn Test thử Nếu có lỗi quay lại bước để xác định lại lỗi liên quan Nếu tính chạy ổn, quay lại bước Table Sau tìm hiểu OsmAnd, em chọn tính sau thực cho đề tài này: Tên tính Mơ tính điều hướng đường Xem đồ Offline Lưu đường đồ Vẽ đường đồ Lưu hiển thị địa điểm yêu thích Xem đường tới đích đến với phương tiện khác SE122.L11 Mơ tả Tính mơ đường cho người sử dụng đến vị trí u cầu, có giọng nói Lưu đồ offline để người sử dụng ngoại tuyến theo dõi đồ Tính cho phép người dùng lưu lại đường đi, để lần sau xem lại chia sẻ cho bạn bè đường Tính cho phép người dùng chọn điểm cần đến, ứng dụng tự động vẽ lên đường phù hợp đến điểm đến Tính giúp người dùng lưu lại vị trí địa điểm yêu thích Tính giúp người dùng xem đường tương thích với phương tiện(Xe đạp tránh đường lớn, Xe lựa đường ngắn nhất) 10 Ước tính khoảng cách đường thực tế Vẽ đường minh họa điểm tính khoảng cách Table 2.3 Xây dựng tính Navigation 2.3.1 Mục đích tính năng: Tính mơ đường cho người sử dụng đến vị trí u cầu, có giọng nói hỗ trợ 2.3.2 Mô tả sơ chức năng: Người dùng chọn vị trí đồ Khi click vào button Navigation, chuyển sang hình điều hướng tới vị trí chọn 2.3.3 Sơ đồ use-case: Hình 2.3.4 Kiến thức vận dụng: Mapbox API(Tương tự OsmAnd, Mapbox sản phẩm mã nguồn mở, chuyên cung cấp API đồ cho website, ứng dụng lớn nay) Ở sử dụng lớp NavigationLauncherOptions để quản lý việc navigate sang hình khác, navigate sang hình mơ qua việc gọi hàm shouldSimulate() 2.3.5 Thiết kế giao diện: Màn hình 1: Cho phép người dùng chọn vị trí Khi chọn xong, button Navigation cho phép người dùng click vào SE122.L11 31 Hình 24 SE122.L11 32 Hình 25 SE122.L11 33 Hình 26 SE122.L11 34 Hình 27 Hình 28 SE122.L11 35 : button Menu : bật tắt hiển thị 2.8 Xây dựng tính Xem đường tới đích đến với phương tiện khác 2.8.1 Mục đích tính năng: Tính giúp người dùng xem đường tương thích với phương tiện(Xe đạp tránh đường lớn, Xe lựa đường ngắn nhất) 2.8.2 Mô tả chức năng: Người dùng tùy chọn chế độ Driving, Walking, Cycling Với phương tiện(Profile) có đường tương ứng đến đích 2.8.3 Sơ đồ use-case: Hình 29 2.8.4 Kiến thức vận dụng: MapboxAPI Ở App sử dụng đối tượng retrofit để request API trả đường tương ứng với phương tiện Nói cách khác API bên Mapbox xây dựng sẵn, cần xác định vị trí điểm đầu cuối 2.8.5 Thiết kế giao diện: Màn hình 1: Màn hình thể đường với tùy chọn phương tiện SE122.L11 36 Hình 30 SE122.L11 37 Hình 31 : Tùy chọn phương tiện SE122.L11 38 2.9 Xây dựng tính Vẽ đường minh họa điểm tính khoảng cách 2.9.1 Mục đích tính năng: Người dùng thấy đường khoảng cách đường địa điểm 2.9.2 Mô tả chức năng: Người dùng lưu lại số vị trí bất kì, ứng dụng hiển thị thơng tin thời gian di chuyển tới địa điểm ấy(có thể nhiều phương tiện khác nhau) từ vị trí 2.9.3 Sơ đồ use-case: Hình 32 2.9.4 Kiến thức vận dụng: Mapbox Direction API: API giúp lấy đường điểm App sử dụng retrofit(1 đối tượng request API) gọi đến API trả đối tượng response, đối tượng bao gồm thông tin khoảng cách, đường từ điểm đầu tới đích Khi đó, để lấy khoảng cách, gọi hàm response.distance() trả khoảng cách(m); để vẽ chuỗi đường tới đích, gọi hàm response.geometry() để trả vẽ đường hàm LineString.fromPolyline(), LineString quản lý việc vẽ chuỗi đường nhỏ 2.9.5 Thiết kế giao diện: Màn hình 1: hình chọn đích đến(vị trí bắt đầu mặc định vị trí tại) SE122.L11 39 Hình 33 SE122.L11 40 Hình 34 Màn hình 2: Màn hình vẽ đường tính khoảng cách(m) sau nhấn Start Calculating SE122.L11 41 Hình 35 SE122.L11 42 Hình 36 Chương Đánh giá, hướng phát triển 3.1 Đánh giá Đánh giá chung sản phẩm: Ứng dụng đồ ứng dụng tuyệt vời, giúp ích cho người nhiều trình di chuyển, từ trẻ nhỏ tới người lớn tuổi cần cho ứng dụng quản lý đồ Song, việc phát triển SE122.L11 43 tính cho ứng dụng đồ ngày trở nên đa dạng phức tạp nhu cầu người ngày cao Khi tiếp cận với đề tài này, em gặp khơng khó khăn việc tìm hiểu nó, đặc biệt tìm thư viện hỗ trợ cho việc xây dựng Do tính dừng lại góc độ định đó, chưa mở rộng chiều sâu, chưa thấy trường hợp sử dụng cụ thể mà thấy tổng quan đầu ra, đầu vào tính Ngoài xây dựng, thư viện khơng đồng với nên số tính phải xây dựng độc lập, không đồng ứng dụng Đánh giá chi tiết trình tìm hiểu OsmAnd: Trước tìm hiểu, tên OsmAnd thật tên nghe xa lạ trước em quen với ứng dụng đồ Google Map Nhưng sau dành thời gian tìm hiểu, em thấy sản phẩm có chức tương tự Google Map mang cho vài nét độc đáo tính đóng góp đồ trực tuyến, tính tham gia cộng đồng Wikivoyage,… Và tới phần tìm hiểu API OsmAnd, em thấy cộng đồng phát triển phần mềm vô to lớn API cập nhật liên tục Trong tương lai, em tin ứng dụng có bước phát triển to lớn Đánh giá chi tiết tính xây dựng đề tài này: Table STT Tên tính Tính mơ Navigation Xem đồ Offline Ghi lại đường SE122.L11 Đề ban đầu Mô việc điều hướng điểm Hiển thị đồ khơng có kết nối Internet Ghi lại thơng Đã làm Mơ ổn, có giọng nói hỗ trợ Chưa làm Hiểu ý tưởng cách triển khai Chưa chạy hoàn chỉnh, bị lỗi chưa xác định Ghi lại ổn định, xuất file Chưa có đa ngơn ngữ 44 tin điểm qua Vẽ đường từ file GPX Thêm địa điểm yêu thích hiển thị đồ Vẽ đường minh họa tính khoảng cách Xem đường với phương tiện(Profile) khác SE122.L11 Vẽ đường từ file GPX có sẵn Cho phép thêm địa điểm vào danh sách yêu thích hiển thị chúng lên đồ Chọn điểm đầu, đích Vẽ đường minh họa hiển thị khoảng cách Hiển thị đường tương ứng với phương tiện GPX tải lưu lại Vẽ tương đối Đường mang tính tương đối(thẳng) Hiển thị ổn Chưa trau chuốt chiều sâu, đa dạng app OsmAnd(OsmAnd đa dạng cách lưu thông tin) Đường đi, khoảng cách hiển thị Chỉ vẽ đường đi, gọi API trả đường Hiển thị tương đối ổn Chưa trau chuốt chiều sâu, chi tiết phương tiện Thiếu phần hướng dẫn di chuyển cho phương tiện 45 khác Dưới Clip demo chức xây dựng đề tài này: https://drive.google.com/file/d/1AGSSfHEn4oIjBe3z5wmwoE56bRyvP3nP/vi ew?usp=sharing 3.2 Hướng phát triển - Thực việc phát triển tính cho ứng dụng đồ vơ khó tính ngày phức tạp nhu cầu sử dụng đồ ngày phình to Ở đề tài này, em hiểu phần cách để tìm hiểu xây dựng chức cho ứng dụng đồ - Trong tương lai, em đào sâu việc tìm ứng dụng OsmAnd để thấy chi tiết trường hợp sử dụng tính để từ thấy người dùng cần gì, người dùng thường làm gì,… để từ vạch đường giải vấn đề đắn Ở đề tài này, em dừng lại việc thấy sơ tính năng, xác định đầu ra, đầu vào tính chưa sâu vào chúng Ngồi ra, tính đề tài em xây dựng có phần rời rạc với nhau(một số chức sử dụng thư viện bên thứ ba khác nên dẫn đến việc không đồng ứng dụng được); vậy, tương lai em giảm thiểu rời rạc việc tìm cho thư viện đồng nhất, phục vụ chung cho việc phát triển ứng dụng đồ Và cuối cùng, vài tính em xác định lúc ban đầu chưa thực trình tìm hiểu chưa tìm hướng giải nên em nghiên cứu kỹ 3.3 Tài liệu tham khảo OsmAnd: https://osmand.net/ https://wiki.openstreetmap.org/wiki/OsmAnd Mapbox: https://docs.mapbox.com/ GoogleMap: https://developers.google.com/maps/documentation OsmAnd github: https://github.com/osmandapp Osmdroid(Offline Map): https://github.com/osmdroid/osmdroid AndroidOfflineMapLibrary: https://github.com/AsynctaskCoffee/AndroidOfflineMapLibrary Example of Using: https://medium.com/ GoogleCloud: https://cloud.google.com/maps-platform SE122.L11 ... tương lai ứng dụng nhận cập nhật, thay đổi Chương Xây dựng ứng dụng minh họa tính OsmAnd 2.1 Tổng quan Qua việc tìm hiểu OsmAnd, em thấy tính ứng dụng OsmAnd thú vị, mang lại hiệu thực tế, gần gũi... cầu sử dụng đồ ngày phình to Ở đề tài này, em hiểu phần cách để tìm hiểu xây dựng chức cho ứng dụng đồ - Trong tương lai, em đào sâu việc tìm ứng dụng OsmAnd để thấy chi tiết trường hợp sử dụng. .. ra, đầu vào tính Ngồi xây dựng, thư viện không đồng với nên số tính phải xây dựng độc lập, khơng đồng ứng dụng Đánh giá chi tiết trình tìm hiểu OsmAnd: Trước tìm hiểu, tên OsmAnd thật tên nghe

Ngày đăng: 05/09/2021, 20:49