Введение
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'