Как перейти на новую версию текстового поиска

Разработчики из Европейской экономической зоны (ЕЭЗ)

Введение

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'