迁移到文本搜索(新)

Places API 支持现有的文本搜索。如果您熟悉现有的“文本搜索”,新版“文本搜索”将进行以下更改:

  • 新的“文本搜索”使用 HTTP POST 请求。将参数作为 HTTP POST 请求的一部分在请求正文或标头中传递。相比之下,对于现有的“文本搜索”,您可以使用 HTTP GET 请求传递网址参数。
  • 必须遮盖字段。您必须指定您希望在响应中返回哪些字段。没有默认的已返回字段列表。如果省略此列表,这些方法会返回错误。如需了解详情,请参阅 FieldMask
  • 新的文本搜索支持将 API 密钥OAuth 令牌作为身份验证机制。
  • 新的“文本搜索”功能仅支持将 JSON 作为响应格式。
  • 现有的文本搜索允许您在查询字符串中指定纬度和经度坐标。例如:query=37.4239,-122.0925。 新的“文本搜索”不支持该选项。

    使用反向地理编码搜索坐标并返回地址,或使用附近搜索(新功能)查找特定位置附近的地点。

  • 文本搜索(新)API 的 JSON 响应格式已从现有 API 的格式更改。如需了解详情,请参阅迁移 Places API 响应

下表列出了现有文本搜索中已针对新文本搜索重命名或修改的参数,或不再受支持的参数。

当前参数 新增参数 备注
evOptions 新参数。
language languageCode
location locationBias
maxprice/minprice priceLevels
opennow openNow
pagetoken 不受支持。
query textQuery 在所有请求中都必需。
radius locationBias 定义 locationBias 时应指定半径。
region regionCode
type includedType 仅接受一个值。
strictTypeFiltering 新参数。

示例请求

以下示例 GET 请求使用现有的“文本搜索”。在此示例中,您将请求包含有关“澳大利亚悉尼辛辣素食食品”信息的 JSON 响应,并将所有参数作为网址参数传递:

curl -L -X GET \
'https://maps.googleapis.com/maps/api/place/textsearch/json?query=Spicy%20Vegetarian%20Food%20in%20Sydney%20Australia&key=API_KEY

借助“文本搜索(新)”功能,您可以发出 POST 请求,并作为 POST 请求的一部分在 JSON 请求正文或标头中传递所有参数。此示例还使用了字段掩码,因此响应仅包含地点的显示名称和设置了格式的地址:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-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:searchText'