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