Текстовый поиск (новое) возвращает информацию о наборе мест на основе строки — например, «пицца в Нью-Йорке», «обувные магазины недалеко от Оттавы» или «Мейн-стрит, 123». Служба отвечает списком мест, соответствующих текстовой строке, и любым установленным смещениям местоположения.
Эта служба особенно полезна для выполнения неоднозначных адресных запросов в автоматизированной системе, поскольку неадресные компоненты строки могут соответствовать как предприятиям, так и адресам. Примерами неоднозначных адресных запросов являются плохо отформатированные адреса или запросы, которые включают неадресные компоненты, такие как названия компаний. Запросы, подобные первым двум примерам в следующей таблице, могут возвращать нулевые результаты, если не установлено местоположение, например регион, ограничение местоположения или смещение местоположения.
«10 High Street, Великобритания» или «123 Main Street, США». | Несколько «Хай-стрит» в Великобритании; несколько «Мейн-стрит» в США. Запрос не возвращает желаемых результатов, если не установлено ограничение местоположения. |
«Сеть ресторанов Нью-Йорк» | Несколько ресторанов ChainRestaurant в Нью-Йорке; ни адреса, ни даже названия улицы. |
«10 High Street, Escher UK» или «123 Main Street, Pleasanton US» | Единственная «Хай-стрит» в британском городе Эшер; только одна «Мейн-стрит» в американском городе Плезантон, Калифорния. |
«UniqueRestaurantName Нью-Йорк» | В Нью-Йорке только одно заведение с таким названием; никакой адрес не нужен для различения. |
"пиццерии в Нью-Йорке" | Этот запрос содержит ограничение по местоположению, а «рестораны-пиццерии» – это четко определенный тип места. Он возвращает несколько результатов. |
"+1 514-670-8700" | Этот запрос содержит номер телефона. Он возвращает несколько результатов для мест, связанных с этим номером телефона. |
Обозреватель API позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями 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) } ] }
Обязательные параметры
Маска поля
Укажите список полей, которые будут возвращены в ответе, создав маску поля ответа . Передайте маску поля ответа методу, используя параметр URL
$fields
илиfields
или HTTP-заголовокX-Goog-FieldMask
. В ответе нет списка возвращаемых полей по умолчанию. Если вы опустите маску поля, метод вернет ошибку.Маскирование полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать ненужного времени обработки и затрат на выставление счетов.
Укажите разделенный запятыми список типов данных о местах, которые необходимо вернуть. Например, чтобы получить отображаемое имя и адрес места.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Используйте
*
, чтобы получить все поля.X-Goog-FieldMask: *
Укажите одно или несколько из следующих полей:
Следующие поля активируют SKU только с идентификатором Text Search Essentials :
places.attributions
places.id
places.name
*
nextPageToken
* Полеplaces.name
содержит имя ресурса места в форме:places/ PLACE_ID
. Используйтеplaces.displayName
для доступа к текстовому названию места.Следующие поля активируют SKU Text Search Pro :
places.accessibilityOptions
places.addressComponents
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 долларов США.Следующие поля активируют SKU текстового поиска Enterprise :
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
Следующие поля активируют SKU текстового поиска Enterprise plus :
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeOptions
places.fuelOptions
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
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 } } }
- Если
МестоположениеОграничение
Указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите регион в виде прямоугольного видового экрана . Пример определения области просмотра см. в описании
locationBias
.Вы можете указать
locationRestriction
илиlocationBias
, но не оба сразу. Подумайте оlocationRestriction
как об указании региона, в котором должны находиться результаты, аlocationBias
как об указании региона, в котором результаты, скорее всего, будут внутри или рядом, но могут находиться за пределами этой области.maxResultCount (устарело)
Указывает количество результатов (от 1 до 20), отображаемых на странице. Например, установка значения
maxResultCount
, равного 5, вернет до 5 результатов на первой странице. Если запрос может вернуть дополнительные результаты, ответ включает в себяnextPageToken
, который можно передать в последующий запрос для доступа к следующей странице.evOptions
Определяет параметры для определения доступных разъемов для зарядки электромобилей (EV) и тарифов на зарядку.
Типы разъемов
Фильтры по типу разъема для зарядки электромобиля доступны на месте. Место, не поддерживающее ни один из типов разъемов, будет отфильтровано. Поддерживаемые типы разъемов для зарядки электромобилей включают комбинированные зарядные устройства (переменного и постоянного тока), зарядные устройства 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.
открытьNow
Если
true
, возвращать только те места, которые открыты для бизнеса на момент отправки запроса. Еслиfalse
, вернуть все предприятия независимо от их открытого статуса. Места, для которых не указаны часы работы в базе данных Google Адресов, возвращаются, если для этого параметра установлено значениеfalse
.размер страницы
Указывает количество результатов (от 1 до 20), отображаемых на странице. Например, установка значения
pageSize
, равного 5, вернет до 5 результатов на первой странице. Если запрос может вернуть дополнительные результаты, ответ включает в себяnextPageToken
, который можно передать в последующий запрос для доступа к следующей странице.pageToken
Указывает
nextPageToken
из тела ответа предыдущей страницы.ценаУровни
Ограничьте поиск местами, отмеченными определенными ценовыми уровнями. По умолчанию выбираются все уровни цен.
Уровни цен можно ожидать для мест следующих типов:
Если указан
priceLevels
, в ответ не будут включены места неподдерживаемых типов.Укажите массив из одного или нескольких значений, определенных
PriceLevel
.Например:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
рангПредпочтение
Указывает, как результаты ранжируются в ответе в зависимости от типа запроса:
- Для категориального запроса, такого как «Рестораны в Нью-Йорке», по умолчанию используется
RELEVANCE
(ранжирование результатов по релевантности поиска). Вы можете установить дляrankPreference
RELEVANCE
илиDISTANCE
(ранжировать результаты по расстоянию). - Для некатегорийного запроса, такого как «Маунтин-Вью, Калифорния», мы рекомендуем оставить
rankPreference
неустановленным.
- Для категориального запроса, такого как «Рестораны в Нью-Йорке», по умолчанию используется
Код региона
Код региона, используемый для форматирования ответа в виде двухсимвольного значения кода CLDR . Этот параметр также может оказывать влияние на результаты поиска. Значения по умолчанию нет.
Если название страны в поле
formattedAddress
в ответе соответствуетregionCode
, код страны опускается вformattedAddress
. Этот параметр не влияет наadrFormatAddress
, который всегда включает название страны, если оно доступно, или наshortFormattedAddress
, который никогда его не включает.Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «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
широты и долготы, которые определяют границу региона.
В следующем примере показан запрос текстового поиска «вегетарианская еда» в Нью-Йорке. Этот запрос возвращает только первые 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
В следующем примере показан запрос текстового поиска «вегетарианская еда», смещенный к местоположению в пределах 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
в тексте ответа предоставляет токен, который можно использовать в последующих вызовах для доступа к следующей странице результатов.
В следующем примере показан запрос «пицца в Нью-Йорке», ограниченный пятью результатами на странице:
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" }
Попробуйте!
Обозреватель API позволяет вам создавать образцы запросов, чтобы вы могли ознакомиться с API и опциями API.
Выберите значок API API в правой части страницы.
При желании отредактируйте параметры запроса.
Нажмите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для отправки запроса.
На панели «Обозреватель API» выберите полноэкранный значок, чтобы развернуть окно Обозревателя API.
Текстовый поиск (новое) возвращает информацию о наборе мест на основе строки — например, «пицца в Нью-Йорке», «обувные магазины недалеко от Оттавы» или «Мейн-стрит, 123». Служба отвечает списком мест, соответствующих текстовой строке, и любым установленным смещениям местоположения.
Эта служба особенно полезна для выполнения неоднозначных адресных запросов в автоматизированной системе, поскольку неадресные компоненты строки могут соответствовать как предприятиям, так и адресам. Примерами неоднозначных адресных запросов являются плохо отформатированные адреса или запросы, которые включают неадресные компоненты, такие как названия компаний. Запросы, подобные первым двум примерам в следующей таблице, могут возвращать нулевые результаты, если не установлено местоположение, например регион, ограничение местоположения или смещение местоположения.
«10 High Street, Великобритания» или «123 Main Street, США». | Несколько «Хай-стрит» в Великобритании; несколько «Мейн-стрит» в США. Запрос не возвращает желаемых результатов, если не установлено ограничение местоположения. |
«Сеть ресторанов Нью-Йорк» | Несколько ресторанов ChainRestaurant в Нью-Йорке; ни адреса, ни даже названия улицы. |
«10 High Street, Escher UK» или «123 Main Street, Pleasanton US» | Единственная «Хай-стрит» в британском городе Эшер; только одна «Мейн-стрит» в американском городе Плезантон, Калифорния. |
«UniqueRestaurantName Нью-Йорк» | В Нью-Йорке только одно заведение с таким названием; никакой адрес не нужен для различения. |
"пиццерии в Нью-Йорке" | Этот запрос содержит ограничение по местоположению, а «рестораны-пиццерии» – это четко определенный тип места. Он возвращает несколько результатов. |
"+1 514-670-8700" | Этот запрос содержит номер телефона. Он возвращает несколько результатов для мест, связанных с этим номером телефона. |
Обозреватель API позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями 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) } ] }
Обязательные параметры
Маска поля
Укажите список полей, которые будут возвращены в ответе, создав маску поля ответа . Передайте маску поля ответа методу, используя параметр URL
$fields
илиfields
или HTTP-заголовокX-Goog-FieldMask
. В ответе нет списка возвращаемых полей по умолчанию. Если вы опустите маску поля, метод вернет ошибку.Маскирование полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать ненужного времени обработки и затрат на выставление счетов.
Укажите разделенный запятыми список типов данных о местах, которые необходимо вернуть. Например, чтобы получить отображаемое имя и адрес места.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Используйте
*
, чтобы получить все поля.X-Goog-FieldMask: *
Укажите одно или несколько из следующих полей:
Следующие поля активируют SKU только с идентификатором Text Search Essentials :
places.attributions
places.id
places.name
*
nextPageToken
* Полеplaces.name
содержит имя ресурса места в форме:places/ PLACE_ID
. Используйтеplaces.displayName
для доступа к текстовому названию места.Следующие поля активируют SKU Text Search Pro :
places.accessibilityOptions
places.addressComponents
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 долларов США.Следующие поля активируют SKU текстового поиска Enterprise :
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
Следующие поля активируют SKU текстового поиска Enterprise plus :
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeOptions
places.fuelOptions
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
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 } } }
- Если
МестоположениеОграничение
Указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите регион в виде прямоугольного видового экрана . Пример определения области просмотра см. в описании
locationBias
.Вы можете указать
locationRestriction
илиlocationBias
, но не оба сразу. Подумайте оlocationRestriction
как об указании региона, в котором должны находиться результаты, аlocationBias
как об указании региона, в котором результаты, скорее всего, будут внутри или рядом, но могут находиться за пределами этой области.maxResultCount (устарело)
Указывает количество результатов (от 1 до 20), отображаемых на странице. Например, установка значения
maxResultCount
, равного 5, вернет до 5 результатов на первой странице. Если запрос может вернуть дополнительные результаты, ответ включает в себяnextPageToken
, который можно передать в последующий запрос для доступа к следующей странице.evOptions
Определяет параметры для определения доступных разъемов для зарядки электромобилей (EV) и тарифов на зарядку.
Типы разъемов
Фильтры по типу разъема для зарядки электромобиля доступны на месте. Место, не поддерживающее ни один из типов разъемов, будет отфильтровано. Поддерживаемые типы разъемов для зарядки электромобилей включают комбинированные зарядные устройства (переменного и постоянного тока), зарядные устройства 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.
открытьNow
Если
true
, возвращать только те места, которые открыты для бизнеса на момент отправки запроса. Еслиfalse
, вернуть все предприятия независимо от их открытого статуса. Места, для которых не указаны часы работы в базе данных Google Адресов, возвращаются, если для этого параметра установлено значениеfalse
.размер страницы
Указывает количество результатов (от 1 до 20), отображаемых на странице. Например, установка значения
pageSize
, равного 5, вернет до 5 результатов на первой странице. Если запрос может вернуть дополнительные результаты, ответ включает в себяnextPageToken
, который можно передать в последующий запрос для доступа к следующей странице.Pagetoken
Определяет
nextPageToken
топенукену из тела ответа на предыдущей странице.Pricelevels
Ограничьте поиск местами, которые отмечены на определенных уровнях цен. По умолчанию - выбрать все уровни цен.
Можно ожидать уровней цен для мест следующих типов:
Места не поддерживаемых типов не будут включены в ответ, если указан
priceLevels
.Укажите массив одного или нескольких значений, определенных
PriceLevel
.Например:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
RankPreference
Указывает, как результаты ранжируются в ответ на основе типа запроса:
- Для категорического запроса, такого как «рестораны в Нью -Йорке»,
RELEVANCE
(результаты ранга по релевантности) - это дефолт. Вы можете установитьrankPreference
наRELEVANCE
илиDISTANCE
(результаты ранга по расстоянию). - Для некатегорического запроса, такого как «Mountain View, CA», мы рекомендуем вам оставить
rankPreference
unset.
- Для категорического запроса, такого как «рестораны в Нью -Йорке»,
регион код
Код региона, используемый для форматирования ответа, указанный как двуххарактерное значение CLDR . Этот параметр также может иметь эффект смещения на результаты поиска. Там нет значения по умолчанию.
Если название страны поля
formattedAddress
в ответе соответствует кодуregionCode
, код страны опущен отformattedAddress
. Этот параметр не влияет наadrFormatAddress
, который всегда включает название страны, когда она доступна, или наshortFormattedAddress
, который никогда не включает его.Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, CCTLD в Великобритании-«Великобритания» (.co.uk), в то время как его ISO 3166-1-«ГБ» (технически для сущности «Соединенное Королевство Великобритании и Северная Ирландия»). Параметр может повлиять на результаты на основе применимого закона.
stricttypifiltering
Используется с параметром
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
значения широты и долготы, которые определяют границу области.
В следующем примере показан запрос на текстовый поиск «вегетарианская еда» в Нью -Йорке. Этот запрос возвращает только первые 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
В следующем примере показан запрос на поиск текста для «вегетарианской еды», предвзятой к месту в 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
для поиска мест с доступными зарядными устройствами, которые совместимы с вашим EV.
В следующем примере показан запрос на разъемы Tesla и J1772 типа 1, зарядные зарядки с минимальной зарядкой 10 кВт в Mountain View, CA. Только четыре результата возвращаются.
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" }
Попробуйте!
APIS Explorer позволяет выполнять образцы запросов, чтобы вы могли познакомиться с параметрами API и API.
Выберите API значка API в правой стороне страницы.
При желании отредактировать параметры запроса.
Выберите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.
На панели APIS Explorer выберите полноэкранный значок полноэкранного экрана, чтобы расширить окно APIS Explorer.
Поиск текста (новый) возвращает информацию о наборе мест, основанных на строке - например, «Пицца в Нью -Йорке» или «Обу обувные магазины возле Оттавы» или «123 Main Street». Служба отвечает списком мест, соответствующих текстовой строке, и любым предвзятости местоположения, которое было установлено.
Служба особенно полезна для неоднозначных запросов адресов в автоматизированной системе, а компоненты неадресса строки могут соответствовать предприятиям, а также адресам. Примерами неоднозначных запросов адресов являются плохо форматированные адреса или запросы, которые включают компоненты без адапта, такие как названия бизнеса. Запросы, такие как первые два примера в следующей таблице, могут вернуть нулевые результаты, если только местоположение, такое как регион, ограничение местоположения или смещение местоположения, не установлено.
"10 High Street, UK" или "123 Main Street, США" | Несколько "Хай -стрит" в Великобритании; Несколько "Main Street" в США. Запрос не возвращает желательные результаты, если не установлено ограничение местоположения. |
"CheanRestaurant New York" | Многочисленные «цепные» местоположения в Нью -Йорке; нет уличного адреса или даже названия улицы. |
"10 High Street, Escher UK" или "123 Main Street, Pleasanton US" | Только одна «главная улица» в британском городе Эшер; Только одна "главная улица" в городе США Плезантон, Калифорния. |
"UniquerestaurantName New York" | Только одно учреждение с этим именем в Нью -Йорке; Уличный адрес не требуется для дифференциации. |
"Пицца рестораны в Нью -Йорке" | Этот запрос содержит ограничение местоположения, а «рестораны пиццы»-четко определенный тип места. Он возвращает несколько результатов. |
"+1 514-670-8700" | Этот запрос содержит номер телефона. Он возвращает несколько результатов для мест, связанных с этим номером телефона. |
APIS Explorer позволяет вам делать живые запросы, чтобы вы могли познакомиться с API и параметрами API:
Запросы на текстовый поиск
Запрос на текстовый поиск - это запрос на пост HTTP в следующей форме:
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
содержит подробную информацию об одном месте. - В ходе запроса в запросе указан список полей, возвращаемых в объекте
Place
.
Полный объект JSON в форме:
{ "places": [ { object (Place) } ] }
Требуемые параметры
Fieldmask
Укажите список полей для возврата в ответ, создав маску поля ответа . Передайте маску поля ответа на метод, используя
$fields
илиfields
параметров URL или с помощью HTTP HeaderX-Goog-FieldMask
. В ответе нет списка возвращаемых полей по умолчанию. Если вы опустите маску поля, метод возвращает ошибку.Полевая маскировка является хорошей практикой дизайна, чтобы гарантировать, что вы не запрашиваете ненужные данные, что помогает избежать ненужного времени обработки и платежных платежей.
Укажите, разделяемый запятой список типов данных, чтобы вернуть. Например, чтобы получить отображаемое имя и адрес места.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Используйте
*
, чтобы получить все поля.X-Goog-FieldMask: *
Укажите одно или несколько из следующих полей:
Следующие поля запускают текстовый поиск .
places.attributions
places.id
places.name
.
nextPageToken
*places/ PLACE_ID
places.name
. Используйтеplaces.displayName
.Следующие поля запускают текстовый поиск Pro Sku :
places.accessibilityOptions
places.addressComponents
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 долларов США за использование во время предварительного просмотра.Следующие поля запускают текстовый поиск 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 Plus SKU :
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeOptions
places.fuelOptions
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Поиск текста и только поблизости поиск
Textquery
Текстовая строка, на которой можно найти, например: «Ресторан», «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 } }
Прямоугольник представляет собой широту длительного просмотра, представленный как два диагонали напротив низких и высоких точек. Низкая точка отмечает юго -западный угол прямоугольника, а высокая точка представляет северо -восточный угол прямоугольника.
Viewport считается закрытой областью, что означает, что он включает в себя свою границу. Границы широты должны варьироваться от -90 до 90 градусов включено, а границы долготы должны варьироваться от -180 до 180 градусов включено:
- Если
low
=high
, топорт Views состоит из этой единственной точки. - Если
low.longitude
>high.longitude
. - Если
low.longitude
= -180 градусов иhigh.longitude
. - Если
low.longitude
= 180 градусов иhigh.longitude
= -180 градусов, диапазон долготы пуст. - Если
low.latitude
>high.latitude
, диапазон широты пуст.
Как низкий, так и высокий, должен быть заполнен, а представленная коробка не может быть пустой. Пустой просмотр приводит к ошибке.
Например, этот вид VIELE полностью прилагает Нью -Йорк:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- Если
местоположение
Указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите область как прямоугольный просмотр . Для примера определения видового порта см. Описание
locationBias
.Вы можете указать
locationRestriction
илиlocationBias
, но не оба. Подумайте оlocationRestriction
как указание области, в которой должны находиться результаты, иlocationBias
как указание области, что результаты, вероятно, будут внутри или рядом, но могут быть за пределами области.maxresultcount (устаревший)
Указывает количество результатов (от 1 до 20) отображать на страницу. Например, установка значения
maxResultCount
5 вернет до 5 результатов на первой странице. Если есть больше результатов, которые могут быть возвращены из запроса, ответ включает в себяnextPageToken
, которую вы можете передать в последующий запрос на доступ к следующей странице.Эвопции
Указывает параметры для идентификации доступных разъемов зарядки электромобилей (EV) и зарядных ставок.
Connectortypes
Фильтры по типу электронного разъема, доступного в месте. Место, которое не поддерживает ни один из типов разъемов, будет отфильтрован. Поддерживаемые типы разъемов EV включают комбинированные (AC и DC) зарядные устройства, зарядные устройства Tesla, зарядные устройства GB/T (для быстрой зарядки EV в Китае) и настенные зарядные устройства. Для получения дополнительной информации см. Справочную документацию.
- Чтобы отфильтровать результаты для конкретного поддерживаемого разъема , установите
connectorTypes
на это значение. Например, чтобы найти разъемы J1772 Type 1, установитеconnectorTypes
наEV_CONNECTOR_TYPE_J1772
. - Чтобы отфильтровать результаты для неподдерживаемых разъемов, установите
connectorTypes
наEV_CONNECTOR_TYPE_OTHER
. - Чтобы отфильтровать результаты для любого типа разъема, который является выходом стены, установите
connectorTypes
наEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
. - Чтобы отфильтровать результаты для любого типа разъема, либо установите
connectorTypes
наEV_CONNECTOR_TYPE_UNSPECIFIED
, либо не устанавливайте значение дляconnectorTypes
.
- Чтобы отфильтровать результаты для конкретного поддерживаемого разъема , установите
Минимальный загрузка
Фильтры мест по минимальной ставке зарядки электромобилей в киловатте (кВт). Любые места с зарядкой ставки, меньшей, чем минимальная ставка зарядки, отфильтрованы. Например, чтобы найти EV Chargers с показателями зарядки, которые составляют не менее 10 кВт, вы можете установить этот параметр на «10.»
мантируется
Ограничивает результаты только теми, чьи средний пользовательский рейтинг больше или равен этому пределу. Значения должны быть от 0,0 до 5,0 (включительно) с шагом 0,5. Например: 0, 0,5, 1,0, ..., 5,0 включительно. Значения окружаются до ближайшего 0,5. Например, значение 0,6 устраняет все результаты с рейтингом менее 1,0.
OpenNow
Если
true
, верните только те места, которые открыты для бизнеса в то время, когда запрос отправлен. Еслиfalse
, верните все предприятия независимо от открытого статуса. Места, в которых не указываются часы работы в базе данных Google Place, возвращаются, если вы установите этот параметр вfalse
.PageSize
Указывает количество результатов (от 1 до 20) отображать на страницу. Например, установка значения
pageSize
5 вернет до 5 результатов на первой странице. Если есть больше результатов, которые могут быть возвращены из запроса, ответ включает в себяnextPageToken
, которую вы можете передать в последующий запрос на доступ к следующей странице.Pagetoken
Определяет
nextPageToken
топенукену из тела ответа на предыдущей странице.Pricelevels
Ограничьте поиск местами, которые отмечены на определенных уровнях цен. По умолчанию - выбрать все уровни цен.
Можно ожидать уровней цен для мест следующих типов:
Места не поддерживаемых типов не будут включены в ответ, если указан
priceLevels
.Укажите массив одного или нескольких значений, определенных
PriceLevel
.Например:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
RankPreference
Указывает, как результаты ранжируются в ответ на основе типа запроса:
- Для категорического запроса, такого как «рестораны в Нью -Йорке»,
RELEVANCE
(результаты ранга по релевантности) - это дефолт. Вы можете установитьrankPreference
наRELEVANCE
илиDISTANCE
(результаты ранга по расстоянию). - Для некатегорического запроса, такого как «Mountain View, CA», мы рекомендуем вам оставить
rankPreference
unset.
- Для категорического запроса, такого как «рестораны в Нью -Йорке»,
регион код
Код региона, используемый для форматирования ответа, указанный как двуххарактерное значение CLDR . Этот параметр также может иметь эффект смещения на результаты поиска. Там нет значения по умолчанию.
Если название страны поля
formattedAddress
в ответе соответствует кодуregionCode
, код страны опущен отformattedAddress
. Этот параметр не влияет наadrFormatAddress
, который всегда включает название страны, когда она доступна, или наshortFormattedAddress
, который никогда не включает его.Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, CCTLD в Великобритании-«Великобритания» (.co.uk), в то время как его ISO 3166-1-«ГБ» (технически для сущности «Соединенное Королевство Великобритании и Северная Ирландия»). Параметр может повлиять на результаты на основе применимого закона.
stricttypifiltering
Используется с параметром
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
значения широты и долготы, которые определяют границу области.
В следующем примере показан запрос на текстовый поиск «вегетарианская еда» в Нью -Йорке. Этот запрос возвращает только первые 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
В следующем примере показан запрос на поиск текста для «вегетарианской еды», предвзятой к месту в 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
для поиска мест с доступными зарядными устройствами, которые совместимы с вашим EV.
В следующем примере показан запрос на разъемы Tesla и J1772 типа 1, зарядные зарядки с минимальной зарядкой 10 кВт в Mountain View, CA. Только четыре результата возвращаются.
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" }
Попробуйте!
APIS Explorer позволяет выполнять образцы запросов, чтобы вы могли познакомиться с параметрами API и API.
Выберите API значка API в правой стороне страницы.
При желании отредактировать параметры запроса.
Выберите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.
На панели APIS Explorer выберите полноэкранный значок полноэкранного экрана, чтобы расширить окно APIS Explorer.
Поиск текста (новый) возвращает информацию о наборе мест, основанных на строке - например, «Пицца в Нью -Йорке» или «Обу обувные магазины возле Оттавы» или «123 Main Street». Служба отвечает списком мест, соответствующих текстовой строке, и любым предвзятости местоположения, которое было установлено.
Служба особенно полезна для неоднозначных запросов адресов в автоматизированной системе, а компоненты неадресса строки могут соответствовать предприятиям, а также адресам. Примерами неоднозначных запросов адресов являются плохо форматированные адреса или запросы, которые включают компоненты без адапта, такие как названия бизнеса. Запросы, такие как первые два примера в следующей таблице, могут вернуть нулевые результаты, если только местоположение, такое как регион, ограничение местоположения или смещение местоположения, не установлено.
"10 High Street, UK" или "123 Main Street, США" | Несколько "Хай -стрит" в Великобритании; Несколько "Main Street" в США. Запрос не возвращает желательные результаты, если не установлено ограничение местоположения. |
"CheanRestaurant New York" | Многочисленные «цепные» местоположения в Нью -Йорке; нет уличного адреса или даже названия улицы. |
"10 High Street, Escher UK" или "123 Main Street, Pleasanton US" | Только одна «главная улица» в британском городе Эшер; Только одна "главная улица" в городе США Плезантон, Калифорния. |
"UniquerestaurantName New York" | Только одно учреждение с этим именем в Нью -Йорке; Уличный адрес не требуется для дифференциации. |
"Пицца рестораны в Нью -Йорке" | Этот запрос содержит ограничение местоположения, а «рестораны пиццы»-четко определенный тип места. Он возвращает несколько результатов. |
"+1 514-670-8700" | Этот запрос содержит номер телефона. Он возвращает несколько результатов для мест, связанных с этим номером телефона. |
APIS Explorer позволяет вам делать живые запросы, чтобы вы могли познакомиться с API и параметрами API:
Запросы на текстовый поиск
Запрос на текстовый поиск - это запрос на пост HTTP в следующей форме:
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
содержит подробную информацию об одном месте. - В ходе запроса в запросе указан список полей, возвращаемых в объекте
Place
.
Полный объект JSON в форме:
{ "places": [ { object (Place) } ] }
Требуемые параметры
Fieldmask
Укажите список полей для возврата в ответ, создав маску поля ответа . Передайте маску поля ответа на метод, используя
$fields
илиfields
параметров URL или с помощью HTTP HeaderX-Goog-FieldMask
. В ответе нет списка возвращаемых полей по умолчанию. Если вы опустите маску поля, метод возвращает ошибку.Полевая маскировка является хорошей практикой дизайна, чтобы гарантировать, что вы не запрашиваете ненужные данные, что помогает избежать ненужного времени обработки и платежных платежей.
Укажите, разделяемый запятой список типов данных, чтобы вернуть. Например, чтобы получить отображаемое имя и адрес места.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Используйте
*
, чтобы получить все поля.X-Goog-FieldMask: *
Укажите одно или несколько из следующих полей:
Следующие поля запускают текстовый поиск .
places.attributions
places.id
places.name
.
nextPageToken
*places/ PLACE_ID
places.name
. Используйтеplaces.displayName
.Следующие поля запускают текстовый поиск Pro Sku :
places.accessibilityOptions
places.addressComponents
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 долларов США за использование во время предварительного просмотра.Следующие поля запускают текстовый поиск 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 Plus SKU :
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeOptions
places.fuelOptions
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Поиск текста и только поблизости поиск
Textquery
Текстовая строка, на которой можно найти, например: «Ресторан», «123 Main Street» или «Лучшее место для посещения в Сан -Франциско». API возвращает соответствия кандидата на основе этой строки и заказывает результаты на основе их предполагаемой актуальности.
Дополнительные параметры
Включено
Ограничивает результаты местами, соответствующими указанному типу, определяемому таблицей A. Может быть указан только один тип. Например:
-
"includedType":"bar"
-
"includedType":"pharmacy"
-
includepureserviceareabusinesses
Если установить на
true
, ответ включает в себя предприятия, которые посещают или доставляют клиентам напрямую, но не имеют физического бизнеса. Если установлено наfalse
, API возвращает только предприятия с физическим бизнесом.языковой код
Язык, на котором можно вернуть результаты.
- Смотрите список поддерживаемых языков . Google часто обновляет поддерживаемые языки, поэтому этот список не может быть исчерпывающим.
- Если
languageCode
не поставляется, API по умолчанию поen
. Если вы указываете неверный языковой код, API возвращает ошибкуINVALID_ARGUMENT
. - The API does its best to provide a street address that is readable for both the user and locals. To achieve that goal, it returns street addresses in the local language, transliterated to a script readable by the user if necessary, observing the preferred language. All other addresses are returned in the preferred language. Address components are all returned in the same language, which is chosen from the first component.
- If a name is not available in the preferred language, the API uses the closest match.
- The preferred language has a small influence on the set of results that the API chooses to return, and the order in which they are returned. The geocoder interprets abbreviations differently depending on language, such as the abbreviations for street types, or synonyms that may be valid in one language but not in another.
locationBias
Specifies an area to search. This location serves as a bias which means results around the specified location can be returned, including results outside the specified area.
You can specify
locationRestriction
orlocationBias
, but not both. Think oflocationRestriction
as specifying the region which the results must be within, andlocationBias
as specifying the region that the results will likely be inside or near but can be outside of the area.Specify the region as a rectangular Viewport or as a circle .
A circle is defined by center point and radius in meters. The radius must be between 0.0 and 50000.0, inclusive. The default radius is 0.0. Например:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
A rectangle is a latitude-longitude viewport, represented as two diagonally opposite low and high points. The low point marks the southwest corner of the rectangle, and the high point represents the northeast corner of the rectangle.
A viewport is considered a closed region, meaning it includes its boundary. The latitude bounds must range between -90 to 90 degrees inclusive, and the longitude bounds must range between -180 to 180 degrees inclusive:
- If
low
=high
, the viewport consists of that single point. - If
low.longitude
>high.longitude
, the longitude range is inverted (the viewport crosses the 180 degree longitude line). - If
low.longitude
= -180 degrees andhigh.longitude
= 180 degrees, the viewport includes all longitudes. - If
low.longitude
= 180 degrees andhigh.longitude
= -180 degrees, the longitude range is empty. - If
low.latitude
>high.latitude
, the latitude range is empty.
Both low and high must be populated, and the represented box cannot be empty. An empty viewport results in an error.
For example, this viewport fully encloses New York City:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- If
locationRestriction
Specifies an area to search. Results outside the specified area are not returned.
Specify the region as a rectangular Viewport . For an example of defining the Viewport, see the description of
locationBias
.You can specify
locationRestriction
orlocationBias
, but not both. Think oflocationRestriction
as specifying the region which the results must be within, andlocationBias
as specifying the region that the results will likely be inside or near but can be outside of the area.maxResultCount (deprecated)
Specifies the number of results (between 1 and 20) to display per page. For example, setting a
maxResultCount
value of 5 will return up to 5 results on the first page. If there are more results that can be returned from the query, the response includes anextPageToken
that you can pass into a subsequent request to access the next page.evOptions
Specifies parameters for identifying available electric vehicle (EV) charging connectors and charging rates.
connectorTypes
Filters by the type of EV charging connector available at a place. A place that does not support any of the connector types will be filtered out. Supported EV charging connector types include combined (AC and DC) chargers, Tesla chargers, GB/T-compliant chargers (for EV fast charging in China), and wall outlet chargers. For more information, see the reference documentation.
- To filter results for a specific supported connector , set
connectorTypes
to that value. For example, to find J1772 type 1 connectors, setconnectorTypes
toEV_CONNECTOR_TYPE_J1772
. - To filter results for unsupported connectors, set
connectorTypes
toEV_CONNECTOR_TYPE_OTHER
. - To filter results for any connector type that is a wall outlet, set
connectorTypes
toEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
. - To filter results for any connector type, either set
connectorTypes
toEV_CONNECTOR_TYPE_UNSPECIFIED
or don't set a value forconnectorTypes
.
- To filter results for a specific supported connector , set
minimumChargingRateKw
Filters places by minimum EV charging rate in kilowatts (kW). Any places with charging a rate less than the minimum charging rate are filtered out. For example, to find EV chargers with charging rates that are at least 10 kW, you can set this parameter to "10."
minRating
Restricts results to only those whose average user rating is greater than or equal to this limit. Values must be between 0.0 and 5.0 (inclusive) in increments of 0.5. For example: 0, 0.5, 1.0, ... , 5.0 inclusive. Values are rounded up to the nearest 0.5. For example, a value of 0.6 eliminates all results with a rating less than 1.0.
openNow
If
true
, return only those places that are open for business at the time the query is sent. Iffalse
, return all businesses regardless of open status. Places that don't specify opening hours in the Google Places database are returned if you set this parameter tofalse
.pageSize
Specifies the number of results (between 1 and 20) to display per page. For example, setting a
pageSize
value of 5 will return up to 5 results on the first page. If there are more results that can be returned from the query, the response includes anextPageToken
that you can pass into a subsequent request to access the next page.pageToken
Specifies the
nextPageToken
from the response body of the previous page.priceLevels
Restrict the search to places that are marked at certain price levels. The default is to select all price levels.
Price levels can be expected for places of the following types:
Places of non-supported types won't be included in the response if
priceLevels
is specified.Specify an array of one or more of values defined by
PriceLevel
.Например:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Specifies how the results are ranked in the response based on the type of query:
- For a categorical query such as "Restaurants in New York City",
RELEVANCE
(rank results by search relevance) is the default. You can setrankPreference
toRELEVANCE
orDISTANCE
(rank results by distance). - For a non-categorical query such as "Mountain View, CA", we recommend that you leave
rankPreference
unset.
- For a categorical query such as "Restaurants in New York City",
regionCode
The region code used to format the response, specified as a two-character CLDR code value. This parameter can also have a bias effect on the search results. There is no default value.
If the country name of the
formattedAddress
field in the response matches theregionCode
, the country code is omitted fromformattedAddress
. This parameter has no effect onadrFormatAddress
, which always includes the country name when available, or onshortFormattedAddress
, which never includes it.Most CLDR codes are identical to ISO 3166-1 codes, with some notable exceptions. For example, the United Kingdom's ccTLD is "uk" (.co.uk) while its ISO 3166-1 code is "gb" (technically for the entity of "The United Kingdom of Great Britain and Northern Ireland"). The parameter can affect results based on applicable law.
strictTypeFiltering
Used with the
includedType
parameter. When set totrue
, only places that match the specified types specified byincludeType
are returned. When false, the default, the response can contain places that don't match the specified types.
Text Search examples
Find a place by query string
The following example shows a Text Search request for "Spicy Vegetarian Food in Sydney, Australia":
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'
Note that the X-Goog-FieldMask
header specifies that the response contains the following data fields: places.displayName,places.formattedAddress
. The response is then in the form:
{ "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" } }, ... ] }
Add more data types to the field mask to return additional information. For example, add places.types,places.websiteUri
to include the restaurant type and Web address in the response :
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'
The response is now in the form:
{ "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" } }, ... ] }
Filter places by price level
Use the priceLevel
option to filter the results to restaurants defined as inexpensive or moderately expensive:
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'
This example also uses the X-Goog-FieldMask
header to add the places.priceLevel
data field to the response so it is in the form:
{ "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" } }, ... ] }
Add additional options to refine your search, such as includedType
, minRating
, rankPreference
, openNow
, and other parameters described in Optional parameters .
Restrict search to a specified area
Use locationRestriction
or locationBias
, but not both, to restrict a search to an area. Think of locationRestriction
as specifying the region which the results must be within, and locationBias
as specifying the region that the results must be near but can be outside of the area.
Restrict area using locationRestriction
Use the locationRestriction
parameter to restrict query results to a specified region. In your request body, specify the low
and high
latitude and longitude values that define the region boundary.
The following example shows a Text Search request for "vegetarian food" in New York City. This request only returns the first 10 results for places that are open.
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'
Bias to an area using locationBias
The following example shows a Text Search request for "vegetarian food" biased to a location within 500 meters of a point in downtown San Francisco. This request only returns the first 10 results for places that are open.
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'
Search for EV chargers with a minimum charging rate
Use minimumChargingRateKw
and connectorTypes
to search for places with available chargers that are compatible with your EV.
The following example shows a request for Tesla and J1772 type 1 EV charging connectors with a minimum charging rate of 10 kW in Mountain View, CA. Only four results are returned.
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'
The request returns the following response:
{ "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 } ] } } ] }
Search for service area businesses
Use the includePureServiceAreaBusinesses
parameter to search for businesses without a physical service address (for example, a mobile cleaning service or a food truck).
The following example shows a request for plumbers in San Francisco:
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'
In the response, businesses without a physical service address don't include the formattedAddress
field:
{ "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" } }, /.../ ] }
Specify a number of results to return per page
Use the pageSize
parameter to specify a number of results to return per page. The nextPageToken
parameter in the response body provides a token that can be used in subsequent calls to access the next page of results.
The following example shows a request for "pizza in New York" limited to 5 results per page:
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" }
To access the next page of results, use pageToken
to pass in the nextPageToken
in the request body:
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" }
Попробуйте!
The APIs Explorer lets you make sample requests so that you can get familiar with the API and the API options.
Select the API icon api on the right side of the page.
Optionally edit the request parameters.
Select the Execute button. In the dialog, choose the account that you want to use to make the request.
In the APIs Explorer panel, select the fullscreen icon fullscreen to expand the APIs Explorer window.