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ểm 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 tối ưu để sử dụng Geocoding API và thời điểm nên sử dụng dịch vụ Place Autocomplete của Places API.
Nhìn chung, hãy sử dụng Geocoding API khi mã hoá địa lý địa chỉ đầy đủ (ví dụ: "48 Pirrama Rd, Pyrmont, NSW, Australia"). 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 có độ trễ thấp, chẳng hạn như khi phản hồi thông tin đầu vào của người dùng.
Trường hợp sử dụng và đề xuất về API
| Trường hợp sử dụng và đề xuất về API | |
|---|---|
| Đến nơi thực tế, lựa chọn điểm đến nâng cao, giao hàng chặng cuối, đón/trả khách đi chung xe, lối vào toà nhà hoặc chỉ đường trong khuôn viên | Sử dụng phương thức Tìm kiếm điểm đến (SearchDestinations) trong Geocoding API phiên bản 4 để truy xuất lối vào toà nhà, điểm đi theo tuyến đường, đường viền toà nhà và địa danh lân cận. Xem phần Chọn phương thức mã hoá địa lý. |
| Phản hồi theo thời gian thực cho thông tin do người dùng nhập (bao gồm cả địa chỉ mơ hồ, không đầy đủ, 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 đó gọi SearchDestinations (để biết thông tin chi tiết theo từng khu vực cụ thể) hoặc GeocodePlace (để biết toạ độ cơ bản). |
| Hệ thống tự động xử lý địa chỉ bưu chính đầy đủ, rõ ràng (ví dụ: "48 Pirrama Rd, Pyrmont, NSW, Australia") | Sử dụng dịch vụ web Geocoding API phiên bản 4 (SearchDestinations để biết thông tin chi tiết theo từng khu vực cụ thể hoặc GeocodeAddress để tra cứu toạ độ). |
| 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ệ cao các truy vấn mơ hồ, không đầy đủ hoặc sai chính tả bắt nguồn từ hoạt động đầ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 chính tả địa chỉ. |
| Vấn đề về độ trễ khi sử dụng Directions API (Cũ) hoặc Distance Matrix API (Cũ), trong đó đ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ỉ | 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:
- Thông tin đầu vào của người dùng thường bao gồm việc nhập địa chỉ theo 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ỉ chưa hoàn chỉnh, không rõ ràng sẽ có lợi vì giúp người dùng nhận được kết quả nhanh hơn.
- 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ở nê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ỉ, đồng thời loại trừ các doanh nghiệp. Hơn nữa, hàm tra cứu tự động hoàn thành có thể được thiên vị để trả về kết quả cụ thể 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í đã được phân định 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 lý địa chỉ đó thành một vĩ độ và kinh độ. 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 (Phiên bản cũ) và Distance Matrix API (Phiên bản 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 những ứng dụng phải phản hồi dữ liệu đầu vào của người dùng theo thời gian thực.
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 cụm từ tìm kiếm rõ ràng, chẳng hạn như chuỗi địa chỉ bưu chính đầy đủ (ví dụ: "48 Pirrama Rd, Pyrmont, NSW, Australia") được xử lý tốt nhất bằng dịch vụ web Geocoding API. Phần phụ trợ mã hoá địa lý địa chỉ cung cấp phạm vi bao phủ địa chỉ rộng hơn trên toàn cầu và được tối ưu hoá để mang lại kết quả chất lượng cao cho các loại truy vấn đầy đủ, rõ ràng này.
Hệ thống tự động xử lý các truy vấn không rõ ràng: Truy vấn không rõ ràng là những truy vấn 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 để 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 tỷ lệ cao các truy vấn mơ hồ 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ể có và cho phép người dùng chọn trong số đó. Places API trả về một mã địa điểm có thể được truyền dưới dạng một vị trí đã được phân định 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 lý địa chỉ đó thành một vĩ độ và kinh độ. Tìm hiểu thêm 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ùng một vị trí dưới dạng vĩ độ/kinh độ 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 của bạn ban đầu được chỉ định dưới dạng 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ũ). Xem thêm thông tin về dịch vụ Place Autocomplete cho Android, iOS, JavaScript và Places API. Xem thêm ví dụ về JavaScript của 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ể sử dụng riêng Geocoding API hoặc kết hợp API này với dịch vụ Place Autocomplete. Nhờ đó, bạn có thể xây dựng 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ì nguyên nhân 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 Google Maps Platform, trong đó có logic thử lại và hỗ trợ xác thực cho Gói Google Maps Platform Cao cấp.
Ứng dụng Java, Ứng dụng Python, Ứng dụng Go và Ứng dụng Node.js cho Dịch vụ 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, thì tức là bạn đã vượt quá hạn mức sử dụng cho API. Bạn nên thử các
chiến lược tối ưu hoá mức sử dụng này.