Tính năng mã hoá địa lý địa điểm cho phép bạn truy xuất địa chỉ từ mã địa điểm.
Mã địa điểm giúp xác định riêng một địa điểm trong cơ sở dữ liệu của Google Địa điểm và trên Google Maps. Truy xuất mã địa điểm khi bạn Mã hoá địa lý một địa chỉ. Bạn cũng có thể truy xuất mã địa điểm từ nhiều API khác, chẳng hạn như Chi tiết địa điểm (Mới), Tìm kiếm văn bản (Mới), và Tìm kiếm lân cận (Mới).
Yêu cầu mã hoá địa lý địa điểm
Yêu cầu mã hoá địa lý địa điểm là một yêu cầu HTTP GET có dạng như sau:
https://geocode.googleapis.com/v4/geocode/places/PLACE_ID
Trong đó, PLACE_ID chứa mã địa điểm của vị trí quan tâm.
Truyền tất cả các tham số khác dưới dạng tham số URL hoặc đối với các tham số như khoá API hoặc mặt nạ trường, hãy truyền trong tiêu đề dưới dạng một phần của yêu cầu GET. Ví dụ:
https://geocode.googleapis.com/v4/geocode/places/ChIJj61dQgK6j4AR4GeTYWZsKWw?key=API_KEY
Hoặc trong lệnh curl:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/places/ChIJj61dQgK6j4AR4GeTYWZsKWw"
Sử dụng OAuth để đưa ra yêu cầu
Geocoding API phiên bản 4 hỗ trợ OAuth 2.0 để xác thực. Để sử dụng OAuth với Geocoding API, mã thông báo OAuth phải được chỉ định phạm vi chính xác. Geocoding API hỗ trợ các phạm vi sau để sử dụng với tính năng mã hoá địa lý địa điểm:
https://www.googleapis.com/auth/maps-platform.geocode— Sử dụng với tất cả các phương thức Geocoding API.https://www.googleapis.com/auth/maps-platform.geocode.place— Chỉ dùng vớiGeocodePlaceđể mã hoá địa lý địa điểm.
Ngoài ra, bạn có thể sử dụng phạm vi https://www.googleapis.com/auth/cloud-platform chung cho tất cả các phương thức của Geocoding API. Phạm vi đó hữu ích trong quá trình phát triển nhưng không hữu ích trong quá trình phát hành công khai, vì đây là phạm vi chung cho phép truy cập vào tất cả các phương thức.
Để biết thêm thông tin và ví dụ, hãy xem bài viết Sử dụng OAuth.
Câu trả lời về mã hoá địa lý địa điểm
Tính năng mã hoá địa lý địa điểm trả về một đối tượng
GeocodeResult
đại diện cho địa điểm tương ứng với mã địa điểm.
Phản hồi của Geocoding API bao gồm các mảng types ở hai vị trí chính trong GeocodeResult:
GeocodeResult.types: Mảng này cho biết(các) loại tổng thể của kết quả. Các giá trị có thể được lấy từ các loại Địa điểm mà Places API sử dụng. Để biết thêm thông tin, hãy xem Bảng A và B về loại địa điểm.GeocodeResult.addressComponents[].types: Mỗi thành phần địa chỉ có một mảngtypescho biết loại của phần cụ thể đó trong địa chỉ. Các giá trị này được lấy từ bảng Loại địa chỉ và thành phần địa chỉ mà Places API sử dụng.
Đối tượng JSON hoàn chỉnh có dạng:
{ "place": "//places.googleapis.com/places/ChIJj61dQgK6j4AR4GeTYWZsKWw", "placeId": "ChIJj61dQgK6j4AR4GeTYWZsKWw", "location": { "latitude": 37.4220541, "longitude": -122.08532419999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.4209489697085, "longitude": -122.08846930000001 }, "high": { "latitude": 37.4236469302915, "longitude": -122.0829156 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1600 Amphitheatre Pkwy" ] }, "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "establishment", "point_of_interest" ] }
Tham số bắt buộc
place— Mã địa điểm của địa điểm mà bạn muốn lấy địa chỉ mà con người có thể đọc được. Mã địa điểm là một giá trị nhận dạng riêng biệt có thể dùng với các API khác của Google. Ví dụ: bạn có thể sử dụngplaceIDdo Roads API trả về để lấy địa chỉ cho một điểm được ghim. Để biết thêm thông tin về mã địa điểm, hãy xem bài viết Mã địa điểm.
Thông số tùy chọn
languageCode
Ngôn ngữ để trả về kết quả.
- Xem danh sách ngôn ngữ được hỗ trợ. Google thường xuyên cập nhật các ngôn ngữ được hỗ trợ, vì vậy, danh sách này có thể chưa đầy đủ.
-
Nếu bạn không cung cấp
languageCode, API sẽ mặc định sử dụng ngôn ngữ và chữ viết địa phương của vị trí. Nếu bạn chỉ định một mã ngôn ngữ không hợp lệ, API sẽ trả về lỗiINVALID_ARGUMENT. - API này cố gắng hết sức để cung cấp địa chỉ đường phố mà cả người dùng và người dân địa phương đều có thể đọc được. Để đạt được mục tiêu đó, API này sẽ trả về địa chỉ đường phố bằng ngôn ngữ địa phương, được chuyển tự sang một hệ chữ viết mà người dùng có thể đọc được (nếu cần), đồng thời tuân thủ ngôn ngữ ưu tiên. Tất cả các địa chỉ khác được trả về bằng ngôn ngữ ưu tiên. Tất cả thành phần địa chỉ đều được trả về bằng cùng một ngôn ngữ, được chọn từ thành phần đầu tiên.
- Nếu không có tên bằng ngôn ngữ ưu tiên, API sẽ sử dụng tên phù hợp nhất.
- Ngôn ngữ ưu tiên có ảnh hưởng nhỏ đến tập hợp kết quả mà API chọn trả về và thứ tự trả về. Bộ mã hoá địa lý diễn giải các từ viết tắt theo nhiều cách tuỳ thuộc vào ngôn ngữ, chẳng hạn như từ viết tắt cho các loại đường phố hoặc từ đồng nghĩa có thể hợp lệ trong một ngôn ngữ nhưng không hợp lệ trong ngôn ngữ khác.
regionCode
Mã vùng dưới dạng giá trị mã CLDR gồm hai ký tự. Không có giá trị mặc định. Hầu hết các mã CLDR đều giống với mã ISO 3166-1.
Khi mã hoá địa lý một địa chỉ, mã hoá địa lý chuyển tiếp, tham số này có thể ảnh hưởng nhưng không hạn chế hoàn toàn kết quả của dịch vụ đối với khu vực được chỉ định. Khi mã hoá địa lý một vị trí hoặc một địa điểm, mã hoá địa lý ngược hoặc mã hoá địa lý địa điểm, bạn có thể dùng tham số này để định dạng địa chỉ. Trong mọi trường hợp, tham số này có thể ảnh hưởng đến kết quả dựa trên luật hiện hành.
-
FieldMask
Tạo mặt nạ trường phản hồi để chỉ định các trường cần trả về trong phản hồi. Truyền mặt nạ trường phản hồi đến phương thức bằng cách sử dụng tham số URL
$fieldshoặcfields, hoặc bằng cách sử dụng tiêu đề HTTPX-Goog-FieldMask. Ví dụ: yêu cầu dưới đây sẽ chỉ trả về trườngformattedAddresscủa phản hồi. Phản hồi:curl -X GET -H 'Content-Type: application/json' \ -H 'X-Goog-FieldMask: formattedAddress' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/places/ChIJj61dQgK6j4AR4GeTYWZsKWw"
{ "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA" }
Xem phần Chọn trường cần trả về để biết thêm thông tin chi tiết.