Các phương pháp hay nhất về địa chỉ mã hoá địa lý

Mã hoá địa lý là quá trình chuyển đổi địa chỉ (chẳng hạn như địa chỉ đường phố) thành toạ độ địa lý (vĩ độ và kinh độ) mà bạn có thể dùng để đặt điểm đánh dấu trên bản đồ hoặc định vị bản đồ. Trọng tâm của tài liệu này là làm rõ những điều cần cân nhắc khi mã hoá địa lý địa chỉ. Tài liệu này mô tả thời điểm thích hợp để sử dụng Geocoding API và thời điểm nên sử dụng dịch vụ Place Autocomplete của Places API.

Nói chung, hãy sử dụng Geocoding API khi mã hoá địa lý địa chỉ đầy đủ (ví dụ: "48 Pirrama Rd, Pyrmont, NSW, Úc"). Sử dụng dịch vụ Place Autocomplete của Places API khi mã hoá địa lý các địa chỉ không rõ ràng (chưa hoàn chỉnh) hoặc cho các ứng dụng nhạy cảm với độ trễ, chẳng hạn như khi phản hồi thông tin đầu vào của người dùng.

Các trường hợp sử dụng và đề xuất về API

Trường hợp sử dụng và đề xuất về API
Phản hồi theo thời gian thực đối với thông tin đầu vào của người dùng (bao gồm cả địa chỉ không rõ ràng, chưa hoàn chỉnh, có định dạng không chính xác hoặc sai chính tả do người dùng nhập) Sử dụng dịch vụ Place Autocomplete của Places API để lấy mã địa điểm, sau đó dùng Geocoding API để mã hoá địa lý mã địa điểm thành latlng.
Hệ thống tự động xử lý địa chỉ bưu chính đầy đủ, rõ ràng (ví dụ: "48 Pirrama Rd, Pyrmont, NSW, Úc") Sử dụng dịch vụ web Geocoding API.
Hệ thống tự động xử lý các truy vấn không rõ ràng (ví dụ: địa chỉ không đầy đủ, sai định dạng hoặc sai chính tả) Bạn nên sử dụng dịch vụ web Geocoding API cho các hệ thống tự động. Tuy nhiên, các hệ thống tự động có tỷ lệ truy vấn mơ hồ, không đầy đủ hoặc sai chính tả cao bắt nguồn từ thông tin đầu vào của người dùng có thể hưởng lợi từ việc thêm một tiện ích Place Autocomplete tương tác để cho phép người dùng chọn một kết quả và do đó tránh viết sai địa chỉ.
Vấn đề về độ trễ khi sử dụng Directions API (cũ) hoặc Distance Matrix API (cũ), với điểm xuất phát, điểm đến hoặc điểm tham chiếu được chỉ định là chuỗi địa chỉ Giảm độ trễ của dịch vụ mã hoá địa lý bằng cách sử dụng dịch vụ Place Autocomplete của Places API để lấy mã địa điểm, sau đó truyền mã địa điểm đến Directions API (Phiên bản cũ) hoặc Distance Matrix API (Phiên bản cũ).

Phản hồi hoạt động đầu vào của người dùng

Các ứng dụng phản hồi theo thời gian thực với hoạt động đầu vào của người dùng có hai yếu tố chính cần cân nhắc, ảnh hưởng đến việc lựa chọn API:

  1. Thông thường, người dùng sẽ nhập địa chỉ từng bước (chẳng hạn như "123 Main Street"). Vì vậy, việc có thể mã hoá địa lý các địa chỉ không đầy đủ và không rõ ràng sẽ rất hữu ích vì cho phép người dùng nhận được kết quả nhanh hơn.
  2. Các ứng dụng phản hồi hoạt động đầu vào của người dùng rất nhạy cảm với độ trễ.

Hai yếu tố này khiến dịch vụ Place Autocomplete trong Places API trở thành lựa chọn lý tưởng cho trường hợp sử dụng phản hồi hoạt động đầu vào của người dùng. Place Autocomplete được thiết kế để trả về nhiều lựa chọn có thể có và cho phép người dùng chọn trong số đó. Bạn có thể hạn chế Places API chỉ tìm kiếm mã địa lý hoặc địa chỉ trong khi loại trừ các doanh nghiệp. Ngoài ra, hàm tra cứu tự động hoàn thành có thể bị thiên vị để trả về kết quả dành riêng cho một vị trí. Places API trả về một mã địa điểm có thể được truyền dưới dạng một vị trí hoàn toàn rõ ràng đến dịch vụ web Geocoding API. Sau đó, dịch vụ này sẽ trả về thông tin chi tiết đầy đủ về địa chỉ và mã hoá địa chỉ thành một latlng. Bạn cũng có thể truyền mã địa điểm đến các API khác, chẳng hạn như Directions API (cũ) và Distance Matrix API (cũ) (xem phần Giảm độ trễ).

Tính năng mã hoá địa lý địa chỉ trong Geocoding API có độ trễ cao hơn nhiều, đồng thời cũng cho ra kết quả kém chính xác hơn đối với các cụm từ tìm kiếm không đầy đủ hoặc không rõ ràng. Do đó, bạn không nên dùng tính năng này cho các ứng dụng phải phản hồi theo thời gian thực đối với hoạt động đầu vào của người dùng.

Tìm hiểu thêm về dịch vụ Place Autocomplete cho Android, iOS, JavaScript, và Places API.

Hệ thống tự động

Hệ thống tự động xử lý địa chỉ bưu chính đầy đủ, rõ ràng: Các truy vấn rõ ràng như chuỗi địa chỉ bưu chính đầy đủ (ví dụ: "48 Pirrama Rd, Pyrmont, NSW, Australia") sẽ được dịch vụ web Geocoding API xử lý tốt nhất. Phần phụ trợ mã hoá địa lý địa chỉ cung cấp phạm vi bao phủ rộng hơn cho các địa chỉ trên toàn cầu và được tối ưu hoá để mang lại kết quả chất lượng cao với các loại cụm từ tìm kiếm hoàn chỉnh, rõ ràng này.

Hệ thống tự động xử lý các cụm từ tìm kiếm không rõ ràng: Cụm từ tìm kiếm không rõ ràng là những cụm từ chứa địa chỉ có định dạng không chính xác, địa chỉ không đầy đủ hoặc lỗi chính tả. Đối với các hệ thống tự động, bạn nên sử dụng dịch vụ web Geocoding API. Tuy nhiên, Geocoding API không được thiết kế để xử lý các truy vấn không rõ ràng và có thể tạo ra kết quả kém chính xác hơn hoặc không có kết quả nào khi phản hồi các truy vấn không rõ ràng. Nếu hệ thống tự động của bạn xử lý một số lượng lớn các truy vấn không rõ ràng bắt nguồn từ hoạt động đầu vào của người dùng, thì bạn có thể hưởng lợi từ việc thêm một thành phần tương tác vào ứng dụng của mình bằng cách sử dụng dịch vụ Place Autocomplete trong Places API, vì dịch vụ này được thiết kế để trả về nhiều lựa chọn có thể và cho phép người dùng chọn giữa các lựa chọn đó. Places API trả về một mã địa điểm có thể được truyền dưới dạng một vị trí hoàn toàn không mơ hồ đến dịch vụ web Geocoding API. Sau đó, dịch vụ này sẽ trả về đầy đủ thông tin chi tiết về địa chỉ và mã hoá địa chỉ thành một latlng. Tìm hiểu thêm thông tin về dịch vụ Place Autocomplete cho Android, iOS, JavaScript và Places API.

Giảm độ trễ cho Directions API (Cũ) và Distance Matrix API (Cũ)

Khi điểm xuất phát, điểm đến hoặc điểm tham chiếu được chỉ định dưới dạng chuỗi địa chỉ, Directions API (Phiên bản cũ) và Distance Matrix API (Phiên bản cũ) sử dụng cùng một phần phụ trợ với Geocoding API để mã hoá địa lý các địa chỉ này trước khi tính toán đường đi. Điều này làm tăng đáng kể độ trễ so với việc chỉ định các vị trí tương tự dưới dạng latlng hoặc mã địa điểm.

Nếu ứng dụng của bạn sử dụng Directions API (cũ) hoặc Distance Matrix API (cũ) trong trường hợp cần độ trễ thấp, chẳng hạn như phản hồi thông tin đầu vào của người dùng, và điểm xuất phát, điểm đến hoặc điểm tham chiếu ban đầu của bạn được chỉ định là chuỗi địa chỉ, thì bạn nên giảm thiểu độ trễ bằng cách sử dụng dịch vụ Place Autocomplete của Places API để chuyển đổi chuỗi địa chỉ thành mã địa điểm, sau đó truyền mã địa điểm đến Directions API (cũ) hoặc Distance Matrix API (cũ). Tìm hiểu thêm về dịch vụ Place Autocomplete cho Android, iOS, JavaScript và Places API. Bạn cũng có thể xem ví dụ về JavaScript về Place Autocomplete và chỉ đường.

Kết luận

Tuỳ thuộc vào trường hợp sử dụng, bạn có thể chỉ dùng Geocoding API hoặc kết hợp API này với dịch vụ Place Autocomplete. Điều này cho phép bạn tạo các ứng dụng cung cấp kết quả mã hoá địa lý chính xác và giảm độ trễ.

Quản lý lỗi và thử lại

Nếu bạn nhận được phản hồi UNKNOWN_ERROR, thì đó là do lỗi tạm thời và cách tốt nhất để xử lý là thử lại sau một khoảng thời gian ngắn. Bạn nên sử dụng thư viện ứng dụng của dịch vụ web trên Google Maps Platform, trong đó có logic thử lại và hỗ trợ xác thực cho Gói cao cấp của Google Maps Platform. Java Client, Python Client, Go Client và Node.js Client cho Dịch vụ của Google Maps là các thư viện ứng dụng được cộng đồng hỗ trợ, có thể tải xuống và đóng góp trên GitHub. Tại đây, bạn cũng sẽ tìm thấy hướng dẫn cài đặt và mã mẫu.

Nếu nhận được mã trạng thái OVER_QUERY_LIMIT dưới dạng phản hồi, tức là bạn đã vượt quá giới hạn sử dụng cho API. Bạn nên thử những chiến lược tối ưu hoá mức sử dụng này.