迁移到附近搜索(新)

欧洲经济区 (EEA) 开发者

简介

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 请求使用的是附近搜索(旧版)。在此示例中,您请求包含类型为 restaurant 的地点信息的 JSON 响应,并将所有参数作为网址参数传递:

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