Places API 支持现有的 文本搜索。如果您熟悉 文本搜索、 新版文本搜索 进行以下更改:
- 新版文本搜索功能使用 HTTP POST 请求。在 HTTP POST 请求的请求正文或标头中传递参数。 相比之下,对于现有的文本搜索,您需要传递 使用 HTTP GET 请求的网址参数。
- 必须选择字段遮盖。您必须指定要在响应中返回的字段。没有返回字段的默认列表。如果您省略此列表,这些方法会返回错误。如需了解详情,请参阅 FieldMask。
- 新的文本搜索同时支持两种 API 密钥 并使用 OAuth 令牌作为身份验证机制。
- 新版文本搜索仅支持 JSON 格式的响应。
借助现有的文本搜索,您可以在查询字符串中指定纬度和经度坐标。例如:
query=37.4239,-122.0925
。 新版文本搜索不支持该选项。- 文本搜索的 JSON 响应格式(新) API 的格式已更改。有关详情,请参阅 迁移 Places API 响应。
下表列出了现有文本搜索中已针对新文本搜索重命名或修改的参数,或不再受支持的参数。
当前参数 | 新增参数 | 备注 |
---|---|---|
evOptions |
新参数。 | |
language |
languageCode |
|
location |
locationBias |
|
maxprice/minprice |
priceLevels |
|
opennow |
openNow |
|
pagetoken |
pageToken |
|
query |
textQuery |
所有请求都必须包含此字段。 |
radius |
locationBias |
定义 locationBias 时指定半径。 |
region |
regionCode |
|
type |
includedType |
只能接受单个值。 |
strictTypeFiltering |
新参数。 |
示例请求
以下示例 GET 请求使用现有的 文本搜索。在此示例中,您将请求 响应包含有关“北京风味辛辣素食”的信息, 澳大利亚”并将所有参数作为网址参数传递:
curl -L -X GET \ 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=Spicy%20Vegetarian%20Food%20in%20Sydney%20Australia&key=API_KEY
使用“文本搜索(新)”时,您需要发出 POST 请求,并在 JSON 请求正文或标头中作为 POST 请求的一部分传递所有参数。此示例还使用了字段掩码,因此响应中仅包含地点的显示名称和设有格式的地址:
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'