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

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

Введение

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 или в заголовках в составе запроса 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'