借助地点地理编码,您可以根据地点 ID 检索地址。
地点 ID 可唯一标识 Google 地点数据库中和 Google 地图上的地点。在对地址进行地理编码时检索地点 ID。您还可以从许多其他 API(例如地点详情(新)、文本搜索(新)和附近搜索(新))检索地点 ID。
地点地理编码请求
地点地理编码请求是一种形式为以下所示的 HTTP GET 请求:
https://geocode.googleapis.com/v4beta/geocode/places/PLACE_ID
其中,PLACE_ID 包含感兴趣地点的地点 ID。
将所有其他参数作为网址参数传递,对于 API 密钥或字段掩码等参数,则在 GET 请求的标头中传递。例如:
https://geocode.googleapis.com/v4beta/geocode/places/ChIJj61dQgK6j4AR4GeTYWZsKWw?key=API_KEY
或者在 curl 命令中:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4beta/geocode/places/ChIJj61dQgK6j4AR4GeTYWZsKWw"
使用 OAuth 发出请求
Geocoding API v4 支持使用 OAuth 2.0 进行身份验证。如需将 OAuth 与 Geocoding API 搭配使用,必须为 OAuth 令牌分配正确的范围。Geocoding API 支持以下范围,可用于地点地理编码:
https://www.googleapis.com/auth/maps-platform.geocode
- 可与所有 Geocoding API 端点搭配使用。https://www.googleapis.com/auth/maps-platform.geocode.place
- 仅与GeocodePlace
搭配使用,用于地点地理编码。
此外,您可以对所有 Geocoding API 端点使用通用 https://www.googleapis.com/auth/cloud-platform
作用域。该作用域在开发期间很有用,但在生产环境中不适用,因为它是一个通用作用域,允许访问所有端点。
如需了解详情和示例,请参阅使用 OAuth。
地点地理编码响应
地点地理编码会返回一个 GeocodeResult
对象,该对象表示与地点 ID 对应的地点。
完整的 JSON 对象的形式如下:
{ "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" ] }
必需参数
place
- 您要获取直观易懂地址的地点的 ID。地点 ID 是唯一标识符,可以与其他 Google API 搭配使用。例如,您可以使用 Roads API 返回的placeID
来获取对应点的地址。如需详细了解地点 ID,请参阅地点 ID。
可选参数
languageCode
返回结果时所用的语言。
- 请参阅支持的语言列表。Google 会经常更新支持的语言,因此该列表可能并非详尽无遗。
-
如果未提供
languageCode
,则 API 默认为en
。如果您指定的语言代码无效,则 API 会返回INVALID_ARGUMENT
错误。 - 该 API 会尽力提供对用户和当地人来说都易于读取的街道地址。为实现此目标,它会以当地语言返回街道地址,并根据首选语言,视需要转写为用户可读的脚本。系统会以首选语言返回所有其他地址。地址组成部分均以相同的语言返回,该语言从第一个组成部分中选择。
- 如果名称不以首选语言提供,API 会使用最接近的匹配项。
- 首选语言对 API 选择返回的结果集和返回结果的顺序有一定影响。地理编码器会根据语言以不同的方式解读缩写,例如街道类型的缩写,或者在一种语言中有效但在另一种语言中无效的同义词。
regionCode
地区代码,以 两个字符的 CLDR 代码值表示。没有默认值。大多数 CLDR 代码与 ISO 3166-1 代码完全一致。
对地址进行地理编码(即正向地理编码)时,此参数可能会影响但不会完全限制服务针对指定区域返回的结果。地理编码位置或地点、进行反向地理编码或地点地理编码时,此参数可用于设置地址格式。在所有情况下,此参数都可能会根据适用法律影响结果。