Places API 支持现有的 附近搜索。 如果您熟悉现有的“附近搜索”, 新版“附近搜索” 进行以下更改:
- 新版“附近搜索”功能使用 HTTP POST 请求。 将参数作为 HTTP POST 的一部分在请求正文或标头中传递 请求。相比之下,与现有的“附近搜索”相比 则使用 HTTP GET 请求传递网址参数
- 必须选择字段遮盖。您必须指定要返回的字段 。没有返回字段的默认列表。如果省略 那么这些方法会返回错误。如需了解详情,请参阅 FieldMask 的子类。
- 新的“附近搜索”支持 API 密钥 和 OAuth 作为身份验证机制。
- 新的响应格式仅支持 JSON 附近搜索。
- 现在,所有包含文本查询的请求都应使用 文本搜索(新) 因为“附近搜索(新)”不支持文本输入。
- 附近搜索的 JSON 响应格式(新) API 的格式已更改。有关详情,请参阅 迁移 Places API 响应。
下表列出了现有 已重命名或修改的“附近搜索” 新的“附近搜索”或不再有 支持。
当前参数 | 新增参数 | 备注 |
---|---|---|
keyword |
不受支持。使用 文本搜索(新) 。 | |
language |
languageCode |
|
location |
locationRestriction |
必填。 |
maxprice/minprice |
|
不受支持。 |
maxResultCount |
新参数。 | |
opennow |
|
不受支持。 |
pagetoken |
不受支持。 | |
radius |
|
立即使用 locationRestriction 。 |
rankby |
rankPreference |
|
regionCode |
新参数。 | |
type |
includedTypes excludedTypes includedPrimaryTypes excludedPrimaryTypes
|
新参数也接受多个类型值。现有 API 只接受一个值。 |
示例请求
以下示例 GET 请求使用现有的
附近搜索。在此示例中,您将请求一个 JSON
包含 restaurant
类型地点相关信息的响应,并将所有
参数作为网址参数:
curl -L -X GET \ 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.7937%2C-122.3965&radius=500&type=restaurant&key=API_KEY'
使用“附近搜索(新)”时,您需要发出 POST 请求并 将 JSON 请求正文或标头中的所有参数作为 POST 的一部分传递 请求。此示例还使用了字段掩码,因此响应仅包含 地点的显示名称和设置了格式的地址:
curl -X POST -d '{ "includedTypes": ["restaurant"], "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.formattedAddress" \ https://places.googleapis.com/v1/places:searchNearby