迁移到附近搜索(新)

Places API 支持现有的附近搜索。如果您熟悉现有的“附近搜索”功能,新版“附近搜索”会做出以下更改:

  • 新的附近搜索功能使用 HTTP POST 请求。 在 HTTP POST 请求的请求正文或标头中传递参数。与之相反,对于现有的附近搜索,您需要使用 HTTP GET 请求传递网址参数。
  • 必须进行字段遮盖。您必须指定要在响应中返回哪些字段。没有返回字段的默认列表。如果您省略此列表,这些方法会返回错误。如需了解详情,请参阅 FieldMask
  • 新版附近搜索支持使用 API 密钥OAuth 令牌作为身份验证机制。
  • 新版附近搜索仅支持 JSON 作为响应格式。
  • 现在,所有包含文本查询的请求都应使用文本搜索(新),因为附近搜索(新)不支持文本输入。
  • 附近搜索(新)API 的 JSON 响应格式已与现有 API 的格式不同。如需了解详情,请参阅迁移 Google 地图 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