Текстовый поиск (новый) возвращает информацию о наборе мест на основе строки — например, «пицца в Нью-Йорке» или «обувные магазины около Оттавы» или «123 Main Street». Служба отвечает списком мест, соответствующих текстовой строке, и любым заданным смещениям местоположения.
Служба особенно полезна для создания неоднозначных адресных запросов в автоматизированной системе, и неадресные компоненты строки могут соответствовать как компаниям, так и адресам. Примерами неоднозначных адресных запросов являются плохо отформатированные адреса или запросы, которые включают неадресные компоненты, такие как названия компаний. Запросы, подобные первым двум примерам в следующей таблице, могут возвращать нулевые результаты, если не задано местоположение — например, регион, ограничение местоположения или смещение местоположения.
«10 Хай-стрит, Великобритания» или «123 Мэйн-стрит, США» | Несколько "High Street" в Великобритании; несколько "Main Street" в США. Запрос не возвращает желаемых результатов, если не установлено ограничение местоположения. |
«ChainRestaurant Нью-Йорк» | Несколько точек «ChainRestaurant» в Нью-Йорке; без почтового адреса или даже названия улицы. |
«10 High Street, Escher UK» или «123 Main Street, Pleasanton US» | Только одна «High Street» в британском городе Эшер; только одна «Main Street» в американском городе Плезантон, штат Калифорния. |
«Уникальное название ресторана Нью-Йорк» | Только одно заведение с таким названием находится в Нью-Йорке; для различения не требуется указывать почтовый адрес. |
"пиццерии в Нью-Йорке" | Этот запрос содержит ограничение по местоположению, а "пиццерии" — это четко определенный тип места. Он возвращает несколько результатов. |
"+1 514-670-8700" | Этот запрос содержит номер телефона. Он возвращает несколько результатов для мест, связанных с этим номером телефона. |
API Explorer позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и его параметрами:
Запросы на поиск текста (новые)
Запрос на текстовый поиск (новый) — это HTTP-запрос POST следующего вида:
https://places.googleapis.com/v1/places:searchText
Передайте все параметры в теле запроса 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,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
Текстовый поиск (новые) ответы
Текстовый поиск (новый) возвращает объект JSON в качестве ответа . В ответе:
- Массив
places
содержит все соответствующие места. - Каждое место в массиве представлено объектом
Place
. ОбъектPlace
содержит подробную информацию об одном месте. - FieldMask , переданный в запросе, определяет список полей, возвращаемых в объекте
Place
.
Полный объект JSON имеет вид:
{ "places": [ { object (Place) } ] }
Требуемые параметры
FieldMask
Укажите список полей для возврата в ответе, создав маску поля ответа . Передайте маску поля ответа в метод, используя параметр URL
$fields
илиfields
или используя заголовок HTTPX-Goog-FieldMask
. В ответе нет списка возвращаемых полей по умолчанию. Если опустить маску поля, метод вернет ошибку.Маскировка полей — это хорошая практика проектирования, которая позволяет избежать запроса ненужных данных, что помогает избежать ненужного времени обработки и расходов на выставление счетов.
Укажите разделенный запятыми список типов данных мест для возврата. Например, чтобы получить отображаемое имя и адрес места.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Используйте
*
для извлечения всех полей.X-Goog-FieldMask: *
Укажите одно или несколько из следующих полей:
Следующие поля активируют только идентификатор Text Search Essentials SKU :
places.attributions
places.id
places.name
*
nextPageToken
* Поле
places.name
содержит имя ресурса места в форме:places/ PLACE_ID
. Используйтеplaces.displayName
в Pro SKU для доступа к текстовому имени места.Следующие поля активируют Text Search Pro SKU :
places.accessibilityOptions
places.addressComponents
places.addressDescriptor
*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
**
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.subDestinations
places.types
places.utcOffsetMinutes
places.viewport
* Адресные дескрипторы, как правило, доступны для клиентов в Индии и являются экспериментальными в других местах.
** Полеplaces.googleMapsLinks
находится на этапе предварительной версии GA, и плата за его использование в период предварительной версии не взимается (то есть плата составляет 0 долл. США).Следующие поля активируют Text Search Enterprise SKU :
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
Следующие поля активируют текстовый поиск Enterprise + Atmosphere SKU :
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeAmenitySummary
places.evChargeOptions
places.fuelOptions
places.generativeSummary
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.neighborhoodSummary
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.reviewSummary
places.routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Только текстовый поиск и поиск поблизости
текстовыйЗапрос
Текстовая строка, по которой выполняется поиск, например: «ресторан», «123 Main Street» или «лучшее место для посещения в Сан-Франциско». API возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Необязательные параметры
включеноТип
Ограничивает результаты местами, соответствующими указанному типу, определенному Таблицей A. Можно указать только один тип. Например:
-
"includedType":"bar"
-
"includedType":"pharmacy"
-
includePureServiceAreaBusinesses
Если установлено значение
true
, ответ включает компании, которые посещают или доставляют товары клиентам напрямую, но не имеют физического местонахождения. Если установлено значениеfalse
, API возвращает только компании с физическим местонахождением.код языка
Язык, на котором следует возвращать результаты.
- См. список поддерживаемых языков . Google часто обновляет список поддерживаемых языков, поэтому этот список может быть неполным.
- Если
languageCode
не указан, API по умолчанию используетen
. Если указать недопустимый код языка, API возвращает ошибкуINVALID_ARGUMENT
. - API делает все возможное, чтобы предоставить адрес, который будет понятен как пользователю, так и местным жителям. Для достижения этой цели он возвращает адрес на местном языке, транслитерированный в сценарий, понятный пользователю, если необходимо, с учетом предпочтительного языка. Все остальные адреса возвращаются на предпочтительном языке. Все компоненты адреса возвращаются на том же языке, который выбирается из первого компонента.
- Если имя недоступно на предпочитаемом языке, API использует наиболее близкое соответствие.
- Предпочтительный язык имеет небольшое влияние на набор результатов, которые API выбирает для возврата, и порядок, в котором они возвращаются. Геокодер интерпретирует сокращения по-разному в зависимости от языка, например, сокращения для типов улиц или синонимы, которые могут быть действительными в одном языке, но не в другом.
местоположениеПредвзятость
Указывает область для поиска. Это местоположение служит смещением, что означает, что могут быть возвращены результаты вокруг указанного местоположения, включая результаты за пределами указанной области.
Вы можете указать
locationRestriction
илиlocationBias
, но не оба. Подумайте оlocationRestriction
как об указании региона, в котором должны быть результаты, аlocationBias
как об указании региона, в котором результаты, скорее всего, будут находиться или около него, но могут быть и за пределами этой области.Укажите область в виде прямоугольной области просмотра или в виде круга .
Окружность определяется точкой центра и радиусом в метрах. Радиус должен быть между 0,0 и 50000,0 включительно. Радиус по умолчанию равен 0,0. Например:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
Прямоугольник — это широтно-долготное окно просмотра, представленное в виде двух диагонально противоположных низкой и высокой точек. Низкая точка отмечает юго-западный угол прямоугольника, а высокая точка представляет северо-восточный угол прямоугольника.
Область просмотра считается замкнутой областью, то есть включает ее границу. Границы широты должны находиться в диапазоне от -90 до 90 градусов включительно, а границы долготы должны находиться в диапазоне от -180 до 180 градусов включительно:
- Если
low
=high
, область просмотра состоит из этой единственной точки. - Если
low.longitude
>high.longitude
, диапазон долготы инвертируется (область просмотра пересекает линию долготы 180 градусов). - Если
low.longitude
= -180 градусов, аhigh.longitude
= 180 градусов, область просмотра включает все долготы. - Если
low.longitude
= 180 градусов, аhigh.longitude
= -180 градусов, то диапазон долготы пуст. - Если
low.latitude
>high.latitude
, диапазон широт пуст.
Оба поля low и high должны быть заполнены, и представленное поле не может быть пустым. Пустая область просмотра приводит к ошибке.
Например, эта область просмотра полностью охватывает Нью-Йорк:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- Если
местоположениеОграничение
Указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите регион как прямоугольный Viewport . Пример определения Viewport см. в описании
locationBias
.Вы можете указать
locationRestriction
илиlocationBias
, но не оба. Подумайте оlocationRestriction
как об указании региона, в котором должны быть результаты, аlocationBias
как об указании региона, в котором результаты, скорее всего, будут находиться или около него, но могут быть и за пределами этой области.maxResultCount (устарело)
Указывает количество результатов (от 1 до 20) для отображения на странице. Например, если задать значение
maxResultCount
равным 5, на первой странице будет возвращено до 5 результатов. Если запрос может вернуть больше результатов, ответ будет включатьnextPageToken
, который можно передать в последующий запрос для доступа к следующей странице.evOptions
Определяет параметры для определения доступных разъемов для зарядки электромобилей (ЭМ) и скоростей зарядки.
Типы разъемов
Фильтры по типу разъема для зарядки электромобилей, доступного в месте. Место, которое не поддерживает ни один из типов разъемов, будет отфильтровано. Поддерживаемые типы разъемов для зарядки электромобилей включают комбинированные (переменного и постоянного тока) зарядные устройства, зарядные устройства Tesla, зарядные устройства, совместимые со стандартом GB/T (для быстрой зарядки электромобилей в Китае), и зарядные устройства для настенной розетки. Для получения дополнительной информации см. справочную документацию.
- Чтобы отфильтровать результаты для определенного поддерживаемого коннектора , установите
connectorTypes
на это значение. Например, чтобы найти коннекторы J1772 типа 1, установитеconnectorTypes
наEV_CONNECTOR_TYPE_J1772
. - Чтобы отфильтровать результаты по неподдерживаемым разъемам, установите для параметра
connectorTypes
значениеEV_CONNECTOR_TYPE_OTHER
. - Чтобы отфильтровать результаты по любому типу разъема, представляющему собой настенную розетку, установите для
connectorTypes
значениеEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
. - Чтобы отфильтровать результаты по любому типу соединителя, либо установите
connectorTypes
значениеEV_CONNECTOR_TYPE_UNSPECIFIED
, либо не задавайте значение дляconnectorTypes
.
- Чтобы отфильтровать результаты для определенного поддерживаемого коннектора , установите
МинимальнаяСкоростьЗарядкиКвт
Фильтрует места по минимальной скорости зарядки электромобиля в киловаттах (кВт). Любые места со скоростью зарядки ниже минимальной скорости зарядки отфильтровываются. Например, чтобы найти зарядные устройства для электромобилей со скоростью зарядки не менее 10 кВт, вы можете установить этот параметр на «10».
минРейтинг
Ограничивает результаты только теми, чей средний рейтинг пользователей больше или равен этому пределу. Значения должны быть в диапазоне от 0,0 до 5,0 (включительно) с шагом 0,5. Например: 0, 0,5, 1,0, ... , 5,0 включительно. Значения округляются до ближайшего 0,5. Например, значение 0,6 исключает все результаты с рейтингом меньше 1,0.
открытьСейчас
Если
true
, возвращаются только те места, которые открыты для бизнеса на момент отправки запроса. Еслиfalse
, возвращаются все предприятия независимо от статуса открытия. Места, для которых не указаны часы работы в базе данных Google Places, возвращаются, если вы устанавливаете этот параметр вfalse
.Размер страницы
Указывает количество результатов (от 1 до 20) для отображения на странице. Например, установка значения
pageSize
, равного 5, вернет до 5 результатов на первой странице. Если есть больше результатов, которые можно вернуть из запроса, ответ включаетnextPageToken
, который можно передать в последующий запрос для доступа к следующей странице.pageToken
Указывает
nextPageToken
из тела ответа предыдущей страницы.priceLevels
Ограничить поиск местами, отмеченными определенными уровнями цен. По умолчанию выбираются все уровни цен.
Уровень цен можно ожидать для мест следующих типов:
Места неподдерживаемых типов не будут включены в ответ, если указано
priceLevels
.Укажите массив из одного или нескольких значений, определенных
PriceLevel
.Например:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Указывает, как ранжируются результаты в ответе на основе типа запроса:
- Для категориального запроса, например "Рестораны в Нью-Йорке",
RELEVANCE
(ранжировать результаты по релевантности поиска) является значением по умолчанию. Вы можете установитьrankPreference
наRELEVANCE
илиDISTANCE
(ранжировать результаты по расстоянию). - Для некатегориального запроса, например «Маунтин-Вью, Калифорния», мы рекомендуем не задавать
rankPreference
.
- Для категориального запроса, например "Рестораны в Нью-Йорке",
Код региона
Код региона, используемый для форматирования ответа, указанный как двухсимвольное значение кода CLDR . Этот параметр также может иметь эффект смещения в результатах поиска. Значения по умолчанию нет.
Если название страны поля
formattedAddress
в ответе совпадает сregionCode
, код страны исключается изformattedAddress
. Этот параметр не влияет наadrFormatAddress
, который всегда включает название страны, если оно доступно, или наshortFormattedAddress
, который никогда его не включает.Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, ccTLD Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для субъекта «Соединенное Королевство Великобритании и Северной Ирландии»). Параметр может влиять на результаты в зависимости от применимого законодательства.
строгийТипФильтрация
Используется с параметром
includedType
. Если установлено значениеtrue
, возвращаются только места, соответствующие указанным типам, указаннымincludeType
. Если установлено значение false (по умолчанию), ответ может содержать места, не соответствующие указанным типам.
Примеры текстового поиска (новые)
Найти место по строке запроса
В следующем примере показан запрос текстового поиска (новый) по запросу «Острая вегетарианская еда в Сиднее, Австралия»:
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'
Обратите внимание, что заголовок X-Goog-FieldMask
указывает, что ответ содержит следующие поля данных: places.displayName,places.formattedAddress
. Тогда ответ будет иметь вид:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
Добавьте больше типов данных в маску поля, чтобы вернуть дополнительную информацию. Например, добавьте places.types,places.websiteUri
, чтобы включить тип ресторана и веб-адрес в ответ :
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,places.types,places.websiteUri' \ 'https://places.googleapis.com/v1/places:searchText'
Ответ теперь имеет вид:
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
Фильтровать места по уровню цен
Используйте параметр priceLevel
, чтобы отфильтровать результаты по ресторанам, определенным как недорогие или умеренно дорогие:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"] }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
В этом примере также используется заголовок X-Goog-FieldMask
для добавления поля данных places.priceLevel
в ответ , чтобы он имел следующий вид:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
Добавьте дополнительные параметры для уточнения поиска, такие как includedType
, minRating
, rankPreference
, openNow
и другие параметры, описанные в разделе Необязательные параметры .
Ограничить поиск указанной областью
Используйте locationRestriction
или locationBias
, но не оба, чтобы ограничить поиск областью. Думайте о locationRestriction
как об указании региона, в котором должны быть результаты, а locationBias
как об указании региона, в котором должны быть результаты, но могут быть и за пределами области.
Ограничить область с помощью locationRestriction
Используйте параметр locationRestriction
, чтобы ограничить результаты запроса указанным регионом. В теле запроса укажите low
и high
значения широты и долготы, которые определяют границу региона.
Следующий пример показывает запрос Text Search (New) для "вегетарианской еды" в Нью-Йорке. Этот запрос возвращает только первые 10 результатов для мест, которые открыты.
curl -X POST -d '{ "textQuery" : "vegetarian food", "pageSize" : "10", "locationRestriction": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } } }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.id,places.formattedAddress' \ 'https://places.googleapis.com/v1/places:searchText'
Смещение в сторону области с использованием locationBias
Следующий пример показывает запрос Text Search (New) для "вегетарианской еды", смещенный к местоположению в пределах 500 метров от точки в центре Сан-Франциско. Этот запрос возвращает только первые 10 результатов для мест, которые открыты.
curl -X POST -d '{ "textQuery" : "vegetarian food", "openNow": true, "pageSize": 10, "locationBias": { "circle": { "center": {"latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } }, }' \ -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'
Поиск зарядных устройств для электромобилей с минимальной скоростью зарядки
Используйте minimumChargingRateKw
и connectorTypes
для поиска мест с доступными зарядными устройствами, совместимыми с вашим электромобилем.
В следующем примере показан запрос на зарядные разъемы Tesla и J1772 типа 1 для электромобилей с минимальной скоростью зарядки 10 кВт в Маунтин-Вью, Калифорния. Возвращается только четыре результата.
curl -X POST -d '{ "textQuery": "EV Charging Station Mountain View", "pageSize": 4, "evOptions": { "minimumChargingRateKw": 10, "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"] } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \ 'https://places.googleapis.com/v1/places:searchText'
Запрос возвращает следующий ответ:
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
Поиск предприятий в зоне обслуживания
Используйте параметр includePureServiceAreaBusinesses
для поиска предприятий без физического адреса обслуживания (например, мобильная клининговая служба или фургон с едой).
В следующем примере показан запрос на сантехников в Сан-Франциско:
curl -X POST -d '{ "textQuery" : "plumber San Francisco", "includePureServiceAreaBusinesses": true }' \ -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'
В ответе компании, не имеющие физического адреса обслуживания, не указывают поле formattedAddress
:
{ "places": [ { "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA", "displayName": { "text": "Advanced Plumbing & Drain", "languageCode": "en" } }, { "formattedAddress": "1455 Bancroft Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Magic Plumbing Heating & Cooling", "languageCode": "en" } }, /.../ { "displayName": { "text": "Starboy Plumbing Inc.", "languageCode": "en" } }, { "formattedAddress": "78 Dorman Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Cabrillo Plumbing, Heating & Air", "languageCode": "en" } }, { "formattedAddress": "540 Barneveld Ave # D, San Francisco, CA 94124, USA", "displayName": { "text": "Mr. Rooter Plumbing of San Francisco", "languageCode": "en" } }, /.../ { "displayName": { "text": "Pipeline Plumbing", "languageCode": "en" } }, { "formattedAddress": "350 Bay St #100-178, San Francisco, CA 94133, USA", "displayName": { "text": "One Source Plumbing and Rooter", "languageCode": "en" } }, /.../ ] }
Укажите количество результатов, которые нужно вернуть на страницу
Используйте параметр pageSize
, чтобы указать количество результатов, возвращаемых на страницу. Параметр nextPageToken
в теле ответа предоставляет токен, который можно использовать в последующих вызовах для доступа к следующей странице результатов.
В следующем примере показан запрос «пицца в Нью-Йорке», ограниченный 5 результатами на страницу:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5 }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
Чтобы получить доступ к следующей странице результатов, используйте pageToken
для передачи nextPageToken
в теле запроса:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5, "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
Получить дескрипторы адреса
Адресные дескрипторы предоставляют реляционную информацию о местоположении места, включая близлежащие достопримечательности и охватываемые территории.
В следующем примере показан запрос Text Search (New) для мест около торгового центра в Сан-Хосе. В этом примере вы включаете addressDescriptors
в маску поля:
curl -X POST -d '{ "textQuery": "clothes", "maxResultCount": 5, "locationBias": { "circle": { "center": { "latitude": 37.321328, "longitude": -121.946275 } } }, "rankPreference":"RANK_PREFERENCE_UNSPECIFIED" }' \ -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \ https://places.googleapis.com/v1/places:searchText
Ответ включает место, указанное в запросе, список близлежащих ориентиров и их расстояние от места, а также список территорий и их связь с местом:
{ "places": [ { "displayName": { "text": "Urban Outfitters", "languageCode": "en" }, "addressDescriptor": { "landmarks": [ { "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "food", "movie_theater", "point_of_interest", "restaurant", "shoe_store", "shopping_mall", "store" ], "spatialRelationship": "WITHIN", "straightLineDistanceMeters": 133.72855 }, { "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4", "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4", "displayName": { "text": "Nordstrom", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 250.99161 }, { "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "displayName": { "text": "Macy's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "store" ], "straightLineDistanceMeters": 116.24196 }, { "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY", "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY", "displayName": { "text": "Bank of America Financial Center", "languageCode": "en" }, "types": [ "bank", "establishment", "finance", "point_of_interest" ], "straightLineDistanceMeters": 121.61515 }, { "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "displayName": { "text": "Bloomingdale's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "furniture_store", "home_goods_store", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 81.32396 } ], "areas": [ { "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "displayName": { "text": "Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM", "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM", "displayName": { "text": "Central San Jose", "languageCode": "en" }, "containment": "WITHIN" } ] } }, /.../ ] }
Попробуйте!
API Explorer позволяет вам делать образцы запросов, чтобы вы могли ознакомиться с API и его параметрами.
Выберите значок API api в правой части страницы.
При желании можно изменить параметры запроса.
Нажмите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.
На панели обозревателя API выберите значок полноэкранного режима, чтобы развернуть окно обозревателя API.