Введение
Places API (устаревший) поддерживает текстовый поиск (устаревший). Если вы знакомы с устаревшей версией текстового поиска, обратите внимание на следующие изменения в новой версии:
- Новая версия текстового поиска использует HTTP-запросы POST. Параметры передаются в теле или заголовках HTTP-запроса POST. В устаревшей версии Text Search параметры URL передаются с помощью HTTP-запроса GET.
- Необходимо использовать маски полей. Вы должны указать, какие поля хотите получить в ответе. Список возвращаемых полей по умолчанию отсутствует. Если вы не укажете этот список, методы вернут ошибку. Подробную информацию можно найти в статье FieldMask.
- Новая версия текстового поиска поддерживает в качестве механизма аутентификации как ключи API, так и токены OAuth.
- В текстовом поиске (New) в качестве формата ответа поддерживается только 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-запрос с использованием текстового поиска (устаревшая версия). В этом примере вы запрашиваете ответ JSON, содержащий информацию об острых вегетарианских блюдах в Сиднее (Австралия), и передаете все параметры как параметры URL:
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 или в заголовках. В этом примере также используется маска поля, поэтому ответ содержит только отображаемое название и отформатированный адрес места.
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'