1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn Nghiên cứu bài toán Geocoding và phát triển ứng dụng minh họa

53 4 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

Thông tin cơ bản

Tiêu đề Nghiên cứu bài toán Geocoding Và Phát Triển Ứng Dụng Minh Họa
Tác giả Bùi Thiện Nhân, Nguyễn Đức Hiếu
Người hướng dẫn Lê Văn Quốc Anh
Trường học Trường Đại Học Giao Thông Vận Tải TP.HCM
Chuyên ngành Công nghệ Thông tin
Thể loại báo cáo thực tập tốt nghiệp
Năm xuất bản 2020
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 53
Dung lượng 2,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Gi ớ i thi ệ u (7)
    • 1.1. Đặt vấn đề (7)
      • 1.1.1. Tính cấp thiết (7)
      • 1.1.2. Mục tiêu (7)
      • 1.1.3. Giới hạn và phạm vi của đề tài (7)
      • 1.1.4. Ý nghĩa khoa học của đề tài (0)
      • 1.1.5. Ý nghĩa thực tiễn của đề tài (8)
  • 2. Công ngh ệ liên quan (9)
    • 2.1. Tìm hiểu về geocoding (9)
      • 2.1.1. Geocoding được sử dụng để làm gì? (9)
      • 2.1.2. Địa chỉ là gì? (0)
      • 2.1.3. Quá trình xử lý geocoding (10)
    • 2.2. Các dịch vụ Geocoding (14)
      • 2.2.1. Dịch vụ Google Maps API (14)
      • 2.2.2. Dịch vụ MapQuest (18)
      • 2.2.3. Dịch Vụ Here (22)
  • 3. So sánh đánh giá (23)
    • 3.1. Độ chính xác (23)
      • 3.2.1. Tìm hiểu về độ chính xác (23)
      • 3.2.2. Tiến hành so sánh độ chính xác (24)
      • 3.2.3. Tổng kết so sánh (35)
    • 3.2. Độ tin cậy (37)
    • 3.3. Tốc độ [1] (38)
    • 3.4. Tính thẩm định (39)
    • 3.5. Tài liệu và hỗ trợ (40)
    • 4.1. Ứng dụng demo đánh dấu các địa điểm (44)
      • 4.1.1. Đăng ký API Key (44)
      • 4.1.2. Load bản đồ (44)
      • 4.1.3. Markers (45)
      • 4.1.4. Info Windows (45)
      • 4.1.5. Các sự kiện (46)
      • 4.1.6. Tiến hành thực hiện ứng dụng (46)
  • 5. K Ế T LU ẬN VÀ HƯỚ NG PHÁT TRI Ể N (51)
    • 5.1. Kết luận (51)
    • 5.2. Hướng phát triển (51)

Nội dung

để tạo ra một ứng dụng giúp tìm kiếm và lưu lại các địa điểm trên nền tảng website.. Ý nghĩa thực tiễn của đề tài - Cung cấp cho người sử dụng một phương tiện tìm kiếm, lưu trữ địa điểm

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

~~~~~~*~~~~~~

NGHIÊN CỨU BÀI TOÁN GEOCODING

VÀ PHÁT TRIỂN ỨNG DỤNG MINH HỌA

NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

Trang 2

L ỜI CAM ĐOAN

Chúng em bằng những sự cố gắng và nỗ lực tìm hiểu, học hỏi của bản thân

khoá trước, thông tin trên mạng đã giúp nhóm chúng em hoàn thành tốt TTTN của mình Chúng em xin chịu hoàn toàn trách nhiệm với những gì mình đã viết

và tận tình chỉ bảo của quý Thầy Cô

Trang 3

M ỤC LỤC

L ỜI CAM ĐOAN 2

M ỤC LỤC 3

DANH M ỤC HÌNH 5

DANH M ỤC BẢNG 6

DANH SÁCH THU ẬT NGỮ, CHỮ VIẾT TẮT 6

1 Gi ới thiệu 7

1.1 Đặt vấn đề 7

1.1.1 Tính cấp thiết 7

1.1.2 Mục tiêu 7

1.1.3 Giới hạn và phạm vi của đề tài 7

1.1.4 Ý nghĩa khoa học của đề tài 7

1.1.5 Ý nghĩa thực tiễn của đề tài 8

2 Công ngh ệ liên quan 9

2.1 Tìm hiểu về geocoding 9

2.1.1 Geocoding được sử dụng để làm gì? 9

2.1.2 Địa chỉ là gì? 9

2.1.3 Quá trình xử lý geocoding 10

2.2 Các dịch vụ Geocoding 14

2.2.1 Dịch vụ Google Maps API 14

2.2.2 Dịch vụ MapQuest 18

2.2.3 Dịch Vụ Here 22

3 So sánh đánh giá 23

3.1 Độ chính xác 23

3.2.1 Tìm hiểu về độ chính xác 23

3.2.2 Tiến hành so sánh độ chính xác 24

3.2.3 Tổng kết so sánh 35

3.2 Độ tin cậy 37

3.3 Tốc độ [1] 38

3.4 Tính thẩm định 39

3.5 Tài liệu và hỗ trợ 40

Trang 4

4.1 Ứng dụng demo đánh dấu các địa điểm 44

4.1.1 Đăng ký API Key 44

4.1.2 Load bản đồ 44

4.1.3 Markers 45

4.1.4 Info Windows 45

4.1.5 Các sự kiện 46

4.1.6 Tiến hành thực hiện ứng dụng 46

5 K ẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51

5.1 Kết luận 51

5.2 Hướng phát triển 51

Tài li ệu tham khảo 53

Trang 5

DANH M ỤC HÌNH

Hình 1 Mô tả địa chỉ US 10

Hình 2 Google Map - Key Google Maps API 15

Hình 3 Google Map - Bắt đầu 16

Hình 4 Google Map - Tọa độ bắt đầu 16

Hình 5 Google Map - Search Box 17

Hình 6 Trang chủ MapQuest 18

Hình 7 MapQuest - Key MapQuest API 19

Hình 8 Mapquest - Demo 20

Hình 9 Mapquest - Tọa độ bắt đầu 20

Hình 10 Here - Giao diện trang chủ 22

Hình 11 Minh họa interpulation 24

Hình 12 Google Maps - Kết quả tọa độ 25

Hình 13 Mapquest - Gửi dữ liệu đến API 26

Hình 14 Here – Tiến hành tạo Bearer Key 28

Hình 15 Here - Lấy Access_Token 28

Hình 16 Here - Tạo credentials key 29

Hình 17 Here - Access Key ID và Access Key Secret 29

Hình 18 Here - Kết quả 30

Hình 19 Here - Sử dụng Bearer 31

Hình 20 Here - Lấy dữ liệu 31

Hình 21 Google Map - Giá dịch vụ Map 40

Hình 22 Google Map - Giá Geocoding, Places 41

Hình 23 Callback Google Map Script 44

Hình 24 Hàm callBack initMap() 44

Hình 25 Markers 45

Hình 26 InfoWindow 46

Hình 27 Database 47

Hình 28 Giao diện ứng dụng 47

Hình 29 AutoComplete SearchBox 48

Hình 30 Kết quả tìm kiếm 48

Hình 31 Kết quả lưu dữ liệu 49

Hình 32 Kết quả hiển thị Markers 49

Hình 33 Kết quả hiện thị InfoWindow 50

Trang 6

DANH M ỤC BẢNG

Bảng 1 Bảng ký hiệu viết tắt 6

Bảng 2 Tiến trình geocoding 12

Bảng 3 So Sánh Độ Chính Xác Một Số Địa chỉ ở US 34

Bảng 4 So Sánh Độ Chính Xác Trên Nhiều Nơi 35

Bảng 5 Downtime 37

Bảng 6 So sánh Price 42

đó có thể thấy hữu ích hoặc thú vị

quân sự

B ảng 1 Bảng ký hiệu viết tắt

Trang 7

1 Giới thiệu

1.1 Đặt vấn đề

1.1.1 Tính cấp thiết

tin cũng như định vị trên bản đồ ngày càng trở nên phổ biến Không những thế việc ứng dụng công nghệ này trên nền tảng website cũng là một xu hướng tất yếu Trên thực tế đã có nhiều dịch vụ geocoding nổi tiếng như Here, MapQuest, MapBox, Openstreet, Google Map …

website

để tạo ra một ứng dụng giúp tìm kiếm và lưu lại các địa điểm trên nền tảng website

1.1.2 Mục tiêu

Tìm hiểu, nghiên cứu các dịch vụ geocoding

website để giải quyết các vấn đề sau:

 Tìm kiếm vị trí trên bản đồ qua tên của địa chỉ có sẵn

 Hiển thị thông tin chính xác về tọa độ, địa chỉ đầy đủ

 Lưu các thông tin liên quan đến địa chỉ vào cơ sở dữ liệu

 Hiển thị các thông tin được lưu thể hiện trên bản đồ

1.1.3 Giới hạn và phạm vi của đề tài

- Về thời gian: Đề tài được thực hiện từ 2/3/2020 đến 20/5/2020

- Về nội dung: Đề tài nghiên cứu các dịch vụ geocoding và xây dựng ứng dụng demo dựa trên các phần mềm mã nguồn mở

- Về công nghệ:

 Sử dụng ngôn ngữ lập trinh Javascrip, PHP

 Hệ quản trị cơ sở dữ liệu MySQL

Trang 8

Đề tài là nền tảng trong việc nghiên cứu và ứng dụng dịch vụ geocoding trên bản

đồ

1.1.5 Ý nghĩa thực tiễn của đề tài

- Cung cấp cho người sử dụng một phương tiện tìm kiếm, lưu trữ địa điểm một

- Xây dựng ứng dụng hỗ trợ và cung cấp cho người dùng lưu lại thông tin về địa điểm Tìm kiếm hoặc thêm thông tin cho địa điểm cụ thể

Trang 9

2 Công nghệ liên quan

2.1 Tìm hiểu về geocoding

trái đất Chúng ta có thể nhập input là một chuỗi text mô tả địa chỉ hoặc tên địa danh,

Chúng ta có thể nhanh chóng tìm được các địa điểm/vị trí thông qua geocoding Các loại vị trí mà chúng ta có thể tìm kiếm bao gồm các điểm (POI) hoặc tên như tên

Khi đó sẽ chuyển đổi sang các tọa độ dựa trên các kinh độ và vĩ độ hoặc hệ

U.S National Grid system

2.1.1 Geocoding được sử dụng để làm gì?

Ngay từ những việc phân tích dữ liệu đơn giản đến quản lý kinh doanh và quản

lý khách hàng Có rất nhiều thứ ứng dụng với geocoding Với các mã địa chỉ được mã hóa địa lý chúng ta có thể nhận được các thông tin và hiển thị vị trí liên quan với địa

chỉ đó

Hầu như các tổ chức kinh doanh đều muốn lưu lại địa chỉ và thông tin của khách

khách hàng đều được lưu lại Geocoding sẽ cho phép các tổ chức, cá nhân có thể lưu được thông tin của khách hàng

Điều này hoàn toàn có thể được làm với các dịch vụ Geocoding hiện nay như Google Maps API, Here, MapQuest, MapBox …

Nhờ các dịch vụ này chúng ta có thể hiển thị thông tin địa chỉ dựa trên những thông số nhất định hay cho phép phân tích thêm các thông tin liên quan đến địa chỉ này

Đề tài này hướng đến các dịch vụ như thế Tìm hiểu về các dịch vụ geocoding như Google Maps API, Developer Here, Mapquest Thực hiện tìm hiểu và triển khai các

2.1.2 Địa chỉ là gì?

Trang 10

Địa chỉ có nhiều kiểu và định dạng khác nhau bao gồm các tuyến đường, giao

lộ, số nhà với tên con đường và mã bưu chính (Postal Code) tương ứng Địa chỉ này giúp geocoding trong việc tìm kiếm, xác định chính xác đến vị trí cụ thể

Ở Việt Nam phổ biến một số định dạng địa chỉ bao gồm

- Phần số nhà và tên đường Ví dụ: 114/4 Năm Châu

- Phần tên thôn/ấp Ví dụ: Thôn 3, xã Lộc Châu

- Địa chỉ đầy đủ: 114/4 Năm Châu, Phường 12, Quận Tân Bình, Thành phố Hồ Chí Minh

Ở Mỹ phổ biến các định dạng địa chỉ như:

- Số nhà, tên đường, loại đường, tên căn hộ, thành phố, tiểu bang, mã bưu chính, đất nước

Trang 12

Cách làm như thế sẽ phân tích và cho ra được nhiều trường hợp để tìm kiếm

b) Các thành phần của địa chỉ

Sau khi phân tách địa chỉ sẽ được chia ra các thành phần theo thứ tự Ưu tiên từ

c) Tìm kiếm theo các thành phần địa chỉ

Khi đã có được các thành phần địa chỉ ở trên, các thành phần này sẽ được so sánh với địa chỉ/ dữ liệu đã có Việc tìm kiếm sẽ được tìm theo 1 tập các thành phần tương ứng với cột giá trị

kiếm sẽ tiếp tục dựa trên những tập thành phần khác như số nhà cho đến khi tất cả các thành phần được tìm thấy

d) Tính điểm cho các thành phần khớp với dữ liệu

năng, tiến hành chấm điểm cho mỗi tập thành phần để xác định mức độ chính xác với

thấp nếu có bất kì điều này bên dưới được sử dụng:

+ Sai chính tả: Số nhà dài hoặc sai Ví dụ: số nhà: “114 Năm Châu” có thể bị tính thấp điểm

+Địa chỉ sai:

Trang 13

Ví dụ: Trên 1 con đường Năm Châu chỉ có địa chỉ được phân bổ từ 1 – 200 nhưng chúng ta lại tìm kiếm 202

e) Lọc danh sách

trên điểm số được chấm Những tập thành phần mà có điểm thấp hơn điểm tối thiểu sẽ

Ví dụ: chúng ta sẽ lấy điểm địa chỉ khớp tối thiểu phải lớn hơn hoặc bằng 85

f) Dữ liệu phù hợp nhất

Những tập thành phần được hiển thị theo hạng và điểm ở trên Điểm càng cao

g) Xử lí và hiển thị

Đây là bước cuối cùng trong quá trình xử lí geocoding Hệ thống tiến hành xử lí

dữ liệu sau khi người dùng tìm kiếm chọn và hiển thị kết quả

 Khi người dùng nhập vào ô input một kết quả tìm kiếm, công cụ geocoding sẽ

đường … theo quy tắc đã được xác định của 1 tập thành phần Chúng ta gọi đây là

nhất với dữ liệu

Trang 14

2.2 Các dịch vụ Geocoding

2.2.1 Dịch vụ Google Maps API

a) Tổng quan

Ứ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í

đườ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

định như ATM, trạm xăng, bệnh viện,…

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

nhúng vào website B (Website cá nhâ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

 Khi sử dụng Map API, chúng ta có thể đánh dấu bất kỳ địa điểm nào trên bản đồ, kèm theo đó là những thông tin về địa điểm đó, bao gồm các khu vui chơi, ATM, trường học, …

 Tính năng chỉ đường đến địa điểm cần tìm (tuyến đường tối ưu nhất cho các phương tiện và nhiều lựa chọn khác), địa điểm có thể được cung cấp như cách làm ở trên hoặc thông qua dịch vụ mà Google Map cung cấp sẵn

 Giúp khoanh vùng khu vực như khu kinh tế, khu sản xuất, khu đô thị hay các khu bị ô nhiễm, …

 Có thể theo dõi tình hình giao thông, lưu lượng phương tiện tại các khu vực,

… và có giải pháp hợp lý

Trang 15

b) Nghiên cứu và thực hiện triển khai dịch vụ

Google Cloud Platform được viết tắt là GCP là 1 nền tảng của điện toán đám

Để có thể tích hợp sâu dịch vụ Google Map cho ứng dụng của mình chúng ta cần phải có Google Map Api Key Google Map API Key đó được cấp qua GCP của google

Hình 2 Google Map - Key Google Maps API

 Places Search Box: Sử dụng mã nguồn tạo ra ô tìm kiếm cho phép nhập vào địa

Trang 16

Hình 3 Google Map - Bắt đầu

 Khi mới vào sẽ hiện giao diện khu vực này Do khi khởi tạo dùng tọa độ khu

Hình 4 Google Map - Tọa độ bắt đầu

Trang 17

Hình 5 Google Map - Search Box

Chúng ta có thể chuyển đổi hình ảnh bản đồ và vệ tinh khi tích hợp API Google Map

c) Tổng kết

- Dịch vụ Google Map hỗ trợ bản đồ tốt cho nhiều khu vực kể cả Việt Nam

Trang 18

2.2.2 Dịch vụ MapQuest

a) Tổng quan

hữu của Verizon Media Nó được ra mắt vào năm 1996 như là dịch vụ lập bản đồ web thương mại đầu tiên

b) Dịch vụ

Hiện tại, MapQuest sử dụng một số dịch vụ của TomTom (là nhà phát triển và sáng tạo đa quốc gia của Hà Lan về công nghệ định vị và điện tử tiêu dùng) cho hệ thống bản đồ của mình

MapQuest cung cấp một số mức độ chi tiết ở mức đường phố hoặc chỉ đường lái

xe cho nhiều quốc gia Người dùng có thể kiểm tra xem quốc gia của họ có khả dụng hay không bằng menu thả xuống trên trang chủ MapQuest

Công ty cung cấp một ứng dụng di động miễn phí cho Android và iOS có tính năng tìm kiếm POI, điều hướng bằng giọng nói, giao thông thời gian thực và các tính năng khác MapQuest cũng cung cấp một trang web thân thiện với thiết bị di động POI (point of interest): là một vị trí điểm cụ thể mà ai đó có thể thấy hữu ích hoặc thú vị MapQuest có một số sản phẩm du lịch

Dữ liệu POI của MapQuest giúp dịch vụ phân biệt chính nó với các phần mềm tìm đường khác bằng cách hướng dẫn người dùng trực tiếp đến các lối vào của doanh nghiệp và điểm đến, thay vì đến các địa chỉ đường phố nói chung

c) Trang chủ

Hình 6 Trang ch ủ MapQuest

d) Hỗ trợ

Trang 19

(developer)

https://developer.mapquest/com Sau đó tạo Key Mapquest API

Hình 7 MapQuest - Key MapQuest API

Trang 20

 Ví dụ: test code trên môi trường localhost

Hình 8 Mapquest - Demo

Hình 9 Mapquest - Tọa độ bắt đầu

Trang 21

Hình 9: Search MapQuest

Trang 22

 Cho dù chúng ta đang tạo một ứng dụng tiêu dùng cung cấp định tuyến chính

dụng, môi trường dev và trình duyệt

 Kiến trúc dựa trên API giúp dễ dàng kiểm tra và duy trì phát triển mã trong khi chỉ tích hợp các tính năng chúng ta cần vào môi trường ứng dụng

 Mã hóa địa lý có sẵn ở 196 quốc gia, với ánh xạ độ chính xác cao của các vị

được xếp hạng theo mức độ liên quan hoặc mức độ gần nhau

 Biến địa chỉ thành tọa độ và ngược lại Nhận các trận đấu chính xác với hơn

360 triệu địa chỉ điểm chính xác ở 108 quốc gia

c) Giao diện

Hình 10 Here - Giao di ện trang chủ

d) Hỗ trợ

 IOS

Trang 23

Để thực hiện geocode chúng ta thường có 2 lựa chọn:

 Rooftop level: Thực hiện bằng cách tự bản thân đi đến địa chỉ đó và ghi lại

 Interpulation – Nội suy: chúng ta không cần phải tốn nhiều sức lực để xác định thông số về địa chỉ đó Phương pháp này cho chúng ta sự chính xác theo một khối gọi là “block level” Phương pháp này liên quan đến 2 điểm chúng ta đã biết sau đó chia khoảng không gian giữa chúng để tính ra vị trí tương đối Bởi vì phương pháp này dựa trên sự tính toán của toán học nên

Phương pháp tạo mới điểm dữ liệu dựa trên những điểm dữ liệu có sẵn Cho geocoding, điều này khá quan trọng cho những con đường mà có những số nhà thì bị bỏ lỡ trong dữ liệu

Trang 24

Hình 11 Minh họa interpulation

Châu Khi đó để xác định được được địa chỉ 10 Năm Châu chúng ta phải dùng phương pháp interpulation để ước tính địa chỉ

10 là số chẵn vì thế nó sẽ ở bên phần đường số chẵn đó chính là phần đường bên trái có đoạn địa chỉ từ 220 Tiếp theo để xác định tương đối vị trí địa chỉ số

đường từ 2 đến

Tương tự chúng ta cũng dùng phương pháp nội suy (interpulation) để ược tính địa chỉ khác của đoạn đường

xác bởi vì trên những con đường dài nhiều ngôi nhà không sát nhau mà cách khá xa nhau vì thế phương pháp này không đạt được hiệu quả

3.2.2 Tiến hành so sánh độ chính xác

3.2.2.1 V ề mức độ chính xác:

- Google Maps API: độ chính xác Rooftop level và cả độ chính xác interpulation

- Here: độ chính xác Rooftop level

- Mapquest: độ chính xác Rooftop level

Trang 25

3.2.2.2 V ề dữ liệu:

đó so sánh với những tọa độ - kinh độ/vĩ độ của những địa chỉ mà được xác minh (Address Validation/ Verification)

a) Đo sự chính xác của Google Maps API

Hình 12 Google Maps - K ết quả tọa độ

b) Đo sự chính xác của MapQuest

một lúc

Cách thực hiện:

Trang 26

Hình 13 Mapquest - Gửi dữ liệu đến API

- Nhập các địa chỉ vào ô location để gửi đến server

- Nhập Key API Mapquest

- Nhấn Send để gửi dữ liệu

- Kết quả Server trả về:

"info": { "statuscode": 0, "copyright": { "text": "© 2020 MapQuest, Inc.", "imageUrl": "http://api.mqcdn.com/res/mqlogo.gif", "imageAltText": "© 2020 MapQuest, Inc."

}, "messages": []

}, "options": { "maxResults": 1, "thumbMaps": false, "ignoreLatLngInput": false

"results": [ { "providedLocation": { "location": "1103 W 1130 N\nOrem Ut"

}, "locations": [ {

"street": "1103 W 1130 N",

Trang 27

"adminArea6": "", "adminArea6Type": "Neighborhood", "adminArea5": "Orem",

"adminArea5Type": "City", "adminArea4": "Utah", "adminArea4Type": "County", "adminArea3": "UT",

"adminArea3Type": "State", "adminArea1": "US", "adminArea1Type": "Country", "postalCode": "84057-2887", "geocodeQualityCode": "P1AAA", "geocodeQuality": "POINT", "dragPoint": false,

"sideOfStreet": "R", "linkId": "r42782820|p70232023|n58151105", "unknownInput": "",

"type": "s", "latLng": { "lat": 40.317866, "lng": -111.722361 },

"displayLatLng": { "lat": 40.317667, "lng": -111.722376 }

} ] },

- Lấy kết quả tọa độ displayLatLng trả về

c) Đo sự chính xác của Here

Dùng Postman để tiến hành gửi dữ liệu đến server Để dùng được API của Here

Ngày đăng: 20/05/2023, 08:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w