迁移到附近搜索(新)

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