Введение
Функция текстового поиска (новая) возвращает информацию о наборе мест на основе строки (например, "пицца в Нью-Йорке", "обувные магазины рядом с Оттавой" или "Главная улица, 123"). Сервис отвечает списком мест, соответствующих текстовой строке, с учетом любых заданных параметров местоположения.
Помимо обязательных параметров , функция текстового поиска (новая версия) поддерживает уточнение запросов с помощью необязательных параметров для получения лучших результатов.
Инструмент API Explorer позволяет отправлять запросы в режиме реального времени, чтобы вы могли ознакомиться с API и его параметрами:
Запросы на текстовый поиск (новые)
Запрос на текстовый поиск (новый) представляет собой HTTP POST-запрос следующего вида:
https://places.googleapis.com/v1/places:searchText
Передайте все параметры в теле JSON-запроса или в заголовках POST-запроса. Например:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'Результаты текстового поиска (новые)
Функция текстового поиска (новая) возвращает в ответ объект JSON . В ответе содержится:
- Массив
placesсодержит все совпадающие места. - Каждое место в массиве представлено объектом
Place. ОбъектPlaceсодержит подробную информацию об одном конкретном месте. - Передаваемый в запросе параметр FieldMask определяет список полей, возвращаемых в объекте
Place. - При выполнении идентичных запросов список возвращаемых мест не гарантирует единообразия.
Полный JSON-объект имеет следующий вид:
{
"places": [
{
object (Place)
}
]
}Необходимые параметры
FieldMask
Укажите список полей, которые должны быть возвращены в ответе, создав маску полей ответа . Передайте маску полей ответа методу, используя параметр URL
$fieldsилиfields, или используя HTTP-заголовокX-Goog-FieldMask. В ответе нет списка возвращаемых полей по умолчанию. Если вы опустите маску полей, метод вернет ошибку.Использование маскирования полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать лишнего времени обработки и дополнительных расходов на выставление счетов.
Укажите список типов данных мест, разделенных запятыми, которые необходимо вернуть. Например, чтобы получить отображаемое имя и адрес места.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Используйте
*для получения всех полей.X-Goog-FieldMask: *
Укажите одно или несколько из следующих полей:
Следующие поля активируют функцию Text Search Essentials ID Only SKU :
places.attributions
places.id
places.name*
nextPageToken
places.movedPlace
places.movedPlaceId* Поле
places.nameсодержит имя ресурса места в формате:places/ PLACE_ID. Используйтеplaces.displayNameв Pro SKU для доступа к текстовому имени места.Следующие поля активируют артикул Text Search Pro :
places.accessibilityOptions
places.addressComponents
places.addressDescriptor*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.searchUri
places.subDestinations
places.timeZone
places.types
places.utcOffsetMinutes
places.viewport
* Адресные описания, как правило, доступны клиентам в Индии, а в других странах находятся на экспериментальной стадии.Следующие поля запускают функцию текстового поиска Enterprise SKU :
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUriСледующие поля запускают функцию текстового поиска Enterprise + Atmosphere SKU :
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeAmenitySummary
places.evChargeOptions
places.fuelOptions
places.generativeSummary
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.neighborhoodSummary
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.reviewSummary
routingSummaries*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Только текстовый поиск и поиск поблизости
текстовый запрос
Текстовая строка, по которой будет производиться поиск. Например, "restaurant", "123 Main Street" или "Best place to visit in San Francisco". API возвращает подходящие варианты на основе этой строки и упорядочивает результаты в зависимости от их предполагаемой релевантности.
Функция текстового поиска (новая) не предназначена для неоднозначных запросов, включая следующие:
тип запроса Пример Слишком много понятий или ограничений, например, названия нескольких мест, дорог или городов в одном запросе. «Маркет-стрит, Сан-Франциско, аэропорт Сан-Хосе» Элементы почтового адреса, не отображаемые на Google Maps. «Адрес: Джон Смит, Мейн-стрит, 123»
"Адрес: 13, Сан-Франциско"Названия предприятий, сетей или категорий в сочетании с указанием мест, где эти организации недоступны. «Магазин Tesco недалеко от Далласа, штат Техас» Неоднозначные запросы с множественными интерпретациями "Сдача зарядного устройства" Исторические названия больше не используются. «Мидлсекс, Соединенное Королевство» Негеопространственные элементы или намерения «Сколько лодок находится в гавани Вентуры?» Неофициальные или самозваные названия «Дженга»
"Хелтер Скелтер"Координаты широты и долготы "37.422131,-122.084801"
Дополнительные параметры
включенный тип
Приводит к смещению результатов в сторону мест, соответствующих указанному типу, определенному в таблице А. Можно указать только один тип. Например:
-
"includedType":"bar" -
"includedType":"pharmacy"
В функции текстового поиска (новая функция) для определенных запросов применяется фильтрация по типу, в зависимости от области применения. Например, фильтрация по типу может не применяться к запросам, содержащим конкретные адреса («123 Main Street»), но она почти всегда применяется к запросам по категориям («магазины поблизости» или «торговые центры»).
Чтобы применить фильтрацию по типу ко всем запросам, установите
strictTypeFilteringвtrue.-
includePureServiceAreaBusinesses
Если установлено значение
true, в ответ будут включены компании, которые посещают клиентов лично или осуществляют доставку, но не имеют физического местоположения. Если установлено значениеfalse, API вернет только компании, имеющие физическое местоположение.languageCode
Язык, на котором будут возвращаться результаты.
- См. список поддерживаемых языков . Google часто обновляет список поддерживаемых языков, поэтому этот список может быть неполным.
- Если
languageCodeне указан, API по умолчанию используетen. Если вы укажете недопустимый код языка, API вернет ошибкуINVALID_ARGUMENT. - API делает все возможное, чтобы предоставить уличный адрес, понятный как пользователю, так и местным жителям. Для достижения этой цели он возвращает уличные адреса на местном языке, при необходимости транслитерированные в письменность, понятную пользователю, с учетом предпочтительного языка. Все остальные адреса возвращаются на предпочтительном языке. Все компоненты адреса возвращаются на одном языке, который выбирается из первого компонента.
- Если имя недоступно на предпочитаемом языке, API использует наиболее близкое совпадение.
- Предпочитаемый язык оказывает незначительное влияние на набор результатов, которые API выбирает для возврата, и на порядок их возврата. Геокодер по-разному интерпретирует сокращения в зависимости от языка, например, сокращения для типов улиц или синонимы, которые могут быть допустимы в одном языке, но не в другом.
locationBias
Указывает область поиска. Это местоположение служит в качестве смещения, что означает, что могут быть получены результаты вокруг указанного местоположения, включая результаты за пределами указанной области.
Вы можете указать
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, диапазон широт пуст.
Необходимо заполнить поля «Низкое» и «Высокое», при этом отображаемый прямоугольник не может быть пустым. Пустой экран приводит к ошибке.
Например, этот иллюминатор полностью охватывает Нью-Йорк:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- Если
locationRestriction
Указывает область поиска только по категориям , которая может возвращать несколько мест (например, «Рестораны в Нью-Йорке» или «Торговые центры»). Результаты за пределами указанной области не возвращаются.
Укажите область в виде прямоугольной области просмотра . Пример определения области просмотра см. в описании параметра
locationBias.Вы можете указать
locationRestrictionилиlocationBias, но не оба параметра одновременно.locationRestrictionследует рассматривать как указание региона, в пределах которого должны находиться результаты, аlocationBiasкак указание региона, внутри или рядом с которым результаты, скорее всего, будут находиться, но могут находиться за пределами указанной области.maxResultCount (устарело)
Указывает количество результатов (от 1 до 20), отображаемых на странице. Например, установка значения
maxResultCountравного 5, вернет до 5 результатов на первой странице. Если запрос может вернуть больше результатов, ответ будет содержатьnextPageToken, который можно передать в последующий запрос для доступа к следующей странице.evOptions
Задает параметры для определения доступных разъемов для зарядки электромобилей и скорости зарядки.
connectorTypes
Фильтры по типу доступного разъема для зарядки электромобилей. Места, не поддерживающие ни один из типов разъемов, будут отфильтрованы. Поддерживаемые типы разъемов для зарядки электромобилей включают комбинированные (переменного и постоянного тока) зарядные устройства, зарядные устройства Tesla, зарядные устройства, соответствующие стандарту GB/T (для быстрой зарядки электромобилей в Китае), и зарядные устройства, подключаемые к настенным розеткам. Для получения дополнительной информации см. справочную документацию.
- Чтобы отфильтровать результаты для конкретного поддерживаемого разъема , установите для параметра
connectorTypesэто значение. Например, чтобы найти разъемы типа J1772 1, установите дляconnectorTypesзначениеEV_CONNECTOR_TYPE_J1772. - Чтобы отфильтровать результаты для неподдерживаемых коннекторов, установите
connectorTypesв значениеEV_CONNECTOR_TYPE_OTHER. - Чтобы отфильтровать результаты для любого типа разъема, являющегося настенной розеткой, установите для
connectorTypesзначениеEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET. - Чтобы отфильтровать результаты по любому типу коннектора, установите для
connectorTypesзначениеEV_CONNECTOR_TYPE_UNSPECIFIEDили не задавайте значение дляconnectorTypes.
- Чтобы отфильтровать результаты для конкретного поддерживаемого разъема , установите для параметра
минимальная скорость зарядки, кВт
Фильтрует места по минимальной мощности зарядки электромобилей в киловаттах (кВт). Все места, где скорость зарядки ниже минимальной, отфильтровываются. Например, чтобы найти зарядные устройства для электромобилей со скоростью зарядки не менее 10 кВт, можно установить этот параметр на "10".
минРейтинг
Отображает только те результаты, средний пользовательский рейтинг которых больше или равен этому пределу. Значения должны быть в диапазоне от 0,0 до 5,0 (включительно) с шагом 0,5. Например: 0, 0,5, 1,0, ..., 5,0 включительно. Значения округляются до ближайшего 0,5. Например, значение 0,6 исключает все результаты с рейтингом ниже 1,0.
открытоСейчас
Если
true, возвращаются только те заведения, которые открыты на момент отправки запроса. Еслиfalse, возвращаются все заведения независимо от их статуса. Если вы установите для этого параметра значениеfalse, будут возвращены заведения, у которых не указаны часы работы в базе данных Google Places.размер страницы
Указывает количество результатов (от 1 до 20), отображаемых на странице. Например, если установить значение
pageSizeравным 5, на первой странице будет отображаться до 5 результатов. Если запрос может вернуть больше результатов, ответ будет содержатьnextPageToken, который можно передать в последующий запрос для доступа к следующей странице.pageToken
Указывает
nextPageTokenиз тела ответа предыдущей страницы.уровни цен
Ограничьте поиск местами, отмеченными определенными ценовыми уровнями. По умолчанию выбраны все ценовые уровни.
Уровень цен можно ожидать для мест следующих типов:
Места неподдерживаемых типов не будут включены в ответ, если указан
priceLevels.Укажите массив из одного или нескольких значений, определенных параметром
PriceLevel.Например:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
рангПредпочтение
Указывает, как результаты ранжируются в ответе в зависимости от типа запроса:
- Для категориального запроса, такого как «Рестораны в Нью-Йорке», значение по умолчанию —
RELEVANCE(ранжировать результаты по релевантности поиска). Вы можете установитьrankPreferenceнаRELEVANCEилиDISTANCE(ранжировать результаты по расстоянию). - Для некатегориальных запросов, таких как "Mountain View, CA", мы рекомендуем не задавать
rankPreference.
- Для категориального запроса, такого как «Рестораны в Нью-Йорке», значение по умолчанию —
regionCode
Региональный код, используемый для форматирования ответа, указывается в виде двухсимвольного кода CLDR . Этот параметр также может влиять на результаты поиска. Значение по умолчанию отсутствует.
Если название страны в поле
formattedAddressв ответе совпадает сregionCode, код страны опускается вformattedAddress. Этот параметр не влияет наadrFormatAddress, который всегда включает название страны, если оно доступно, или наshortFormattedAddress, который никогда его не включает.Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, национальный домен верхнего уровня Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически обозначающий «Соединенное Королевство Великобритании и Северной Ирландии»). Параметр может влиять на результаты в зависимости от применимого законодательства.
strictTypeFiltering
Используется с параметром
includedType. Если установлено значениеtrue, возвращаются только места, соответствующиеincludedTypeтипам. Если значение 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 в теле ответа предоставляет токен, который можно использовать в последующих вызовах для доступа к следующей странице результатов.
В следующем примере показан запрос на "пиццу в Нью-Йорке", ограниченный 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" }
Получить описания адресов
Адресные описания предоставляют информацию о местоположении места, включая близлежащие достопримечательности и входящие в него территории.
В следующем примере показан запрос текстового поиска (новый) мест рядом с торговым центром в Сан-Хосе. В этом примере в маску поля необходимо включить addressDescriptors :
curl -X POST -d '{
"textQuery": "clothes",
"maxResultCount": 5,
"locationBias": {
"circle": {
"center": {
"latitude": 37.321328,
"longitude": -121.946275
}
}
},
"rankPreference":"RANK_PREFERENCE_UNSPECIFIED"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchText
В ответе указывается место, указанное в запросе, список близлежащих достопримечательностей и расстояние до них, а также список районов и их взаимосвязь с данным местом:
{ "places": [ { "displayName": { "text": "Urban Outfitters", "languageCode": "en" }, "addressDescriptor": { "landmarks": [ { "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "food", "movie_theater", "point_of_interest", "restaurant", "shoe_store", "shopping_mall", "store" ], "spatialRelationship": "WITHIN", "straightLineDistanceMeters": 133.72855 }, { "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4", "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4", "displayName": { "text": "Nordstrom", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 250.99161 }, { "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "displayName": { "text": "Macy's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "store" ], "straightLineDistanceMeters": 116.24196 }, { "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY", "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY", "displayName": { "text": "Bank of America Financial Center", "languageCode": "en" }, "types": [ "bank", "establishment", "finance", "point_of_interest" ], "straightLineDistanceMeters": 121.61515 }, { "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "displayName": { "text": "Bloomingdale's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "furniture_store", "home_goods_store", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 81.32396 } ], "areas": [ { "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "displayName": { "text": "Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM", "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM", "displayName": { "text": "Central San Jose", "languageCode": "en" }, "containment": "WITHIN" } ] } }, /.../ ] }
Попробуйте!
Инструмент API Explorer позволяет создавать примеры запросов, чтобы вы могли ознакомиться с API и его параметрами.
Выберите значок API в правой части страницы.
При желании можно отредактировать параметры запроса.
Нажмите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.
На панели «Обозреватель API» выберите значок полноэкранного режима, чтобы развернуть окно «Обозреватель API».