Destination – это определенное место, куда пользователь хочет добраться. Объект Destination также содержит набор данных, связанных с местоположением или местом, например точки навигации, ориентиры, входы и контуры зданий.
Метод SearchDestinations Geocoding API позволяет получать подробную информацию о различных пунктах назначения на основе разных входных критериев, таких как адрес, идентификатор места или координаты широты и долготы.
Запрос на поиск пунктов назначения
Запрос на поиск пунктов назначения – это HTTP-запрос POST к URL в следующем формате:
https://geocode.googleapis.com/v4/geocode/destinations
Передайте все параметры в теле запроса JSON или в заголовках в составе запроса POST. Пример:
curl -X POST -d '{
"place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations
Вы можете указать местоположение для поиска пункта назначения тремя способами:
- Адрес
- Идентификатор места
- Координаты широты и долготы
Как найти пункт назначения по адресу
Адрес можно указать в виде неструктурированной строки. Геокодирование адресов не позволяет определить координаты широты и долготы или другие неструктурированные строки, которые не являются адресами. Запросы с такими строками не поддерживаются и могут привести к ошибкам или непредсказуемому поведению. Примеры неподдерживаемых запросов:
| Тип запроса | Пример |
|---|---|
| Координаты широты и долготы. Вместо этого используйте запрос местоположения. | "37.422131,-122.084801" |
| Слишком много понятий или ограничений, например названия нескольких мест, дорог или городов в одном запросе. | "Маркет-стрит Сан-Франциско аэропорт Сан-Хосе" |
| Элементы почтового адреса, не представленные на Google Картах |
"C/O John Smith 123 Main Street" "P.O. Box 13 San Francisco" |
| Названия компаний, сетей или категорий в сочетании с местоположениями, где эти объекты недоступны. | "Tesco рядом с Далласом, Техас" |
| Неоднозначные запросы, которые можно интерпретировать по-разному. | "Charger drop-off" |
| Исторические названия, которые больше не используются | "Middlesex United Kingdom" |
| Негеопространственные элементы или намерения | "Сколько лодок в порту Вентура?" |
| Неофициальные или рекламные названия. |
"Дженга" "Хелтер Скелтер" |
| Крупные административные единицы (города, штаты, страны). |
"New York City" "California" "USA" |
| Маршруты без точных адресов |
"1st Ave., NYC, NY" "I-95" |
curl -X POST -d '{
"addressQuery": {
"addressQuery": "601 S Bernardo Ave, Sunnyvale, CA 94087, USA"
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations
или как postalAddress:
curl -X POST -d '{
"addressQuery": {
"address": {
"addressLines": ["601 S Bernardo Ave"],
"locality": "Sunnyvale",
"postalCode": "94087",
"administrativeArea": "CA",
"regionCode": "US"
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations
Формат postalAddress обычно используется при обработке компонентов адреса, полученных из HTML-формы.
Поиск пункта назначения по идентификатору места
Вы можете получить информацию о пункте назначения, указав его идентификатор места:
curl -X POST -d '{
"place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations
Поддерживаемые идентификаторы мест
Метод Search Destinations лучше всего работает с идентификаторами мест, которые представляют определенные точки назначения, до которых можно добраться. Обычно поддерживаются идентификаторы мест для таких типов, как establishment, point_of_interest, premise, street_address и subpremise. Идентификаторы мест, которые не представляют отдельные местоположения, например полученные из диапазонов адресов (например, "ул. Ленина, 10–20"), участков маршрута без определенного номера или кодов Plus Code, не поддерживаются. Идентификаторы мест, которые занимают слишком большую площадь (например, "Тихий океан"), также не поддерживаются.
Как использовать Autocomplete (New) с Search Destinations
Чтобы обеспечить совместимость, используйте автозаполнение (новая версия) для поиска идентификаторов мест, которые можно использовать с функцией "Поиск пунктов назначения". При использовании функции автозаполнения (новой версии) следует фильтровать результаты по типу с помощью параметра includedPrimaryTypes. Идентификаторы мест, возвращаемые сервисом Autocomplete (New) с использованием рекомендованного фильтра, поддерживаются в Search Destinations.
"includedPrimaryTypes": [ "establishment", "point_of_interest", "premise", "street_address", "subpremise" ]
Кроме того, в запросе Autocomplete (новая версия) не следует устанавливать для флага include_pure_service_area_businesses значение true.
Как найти пункт назначения по местоположению
Чтобы найти пункт назначения по широте и долготе, выполните следующие действия:
curl -X POST -d '{
"locationQuery": {
"location": {
"latitude": 37.37348780,
"longitude": -122.05678064
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations
Как создать запрос с помощью OAuth
Geocoding API версии 4 поддерживает аутентификацию OAuth 2.0. Чтобы использовать OAuth с Geocoding API, токену OAuth должна быть назначена правильная область действия. Geocoding API поддерживает следующие области действия для использования с методом Destinations:
https://www.googleapis.com/auth/maps-platform.geocode— Используйте со всеми методами Geocoding API.
Кроме того, для всех методов Geocoding API можно использовать общий диапазон https://www.googleapis.com/auth/cloud-platform. Эта область действия полезна на этапе разработки, но не в рабочей среде, поскольку она является общей и предоставляет доступ ко всем методам.
Дополнительную информацию и примеры можно найти в статье Как использовать OAuth.
Ответ на запрос поиска пунктов назначения
Ответ на запрос о направлениях поиска содержит подробную гиперлокальную информацию о местоположении.
Объекты PlaceView в ответе Search Destinations (например, primary, элементы в containingPlaces и landmarks) используют поля для указания типа места:
types– массив строк, указывающих тип места.primaryType– строка, указывающая основной тип места.
Возможные строковые значения для types и primaryType берутся из таблицы A и таблицы B на странице "Типы мест (новые)".
В этом разделе описаны основные поля ответа. Подробную информацию обо всех полях ответа можно найти в документации по API.
primary
Основное место, определенное по запросу.
addressComponents
Массив, содержащий отдельные компоненты адреса.
Каждый из компонентов адреса обычно содержит следующие поля:
types[]– массив, указывающий тип компонента адреса. Ознакомьтесь со списком поддерживаемых типов.longText– полное текстовое описание или название компонента адреса, возвращаемого геокодером.shortText– сокращенное текстовое название компонента адреса (если есть). Например, компонент адреса для штата Аляска может содержатьlongText"Alaska" иshortText"AK" (двухбуквенное почтовое сокращение).languageCode– язык, используемый для форматирования этого компонента (в нотации CLDR).
containingPlaces
Более крупные объекты, частью которых является основной пункт назначения (например, торговый центр, в котором находится магазин).
subDestinations
Более конкретные места в основном пункте назначения (например, квартиры в здании).
entrances
Объекты в массиве entrances[] имеют следующие поля:
locationПара координат широты и долготы, определяющая местоположение точки входа или выхода из места.
entrance_tags[]Массив тегов входа, описывающих характеристики входа. Поддерживается следующее значение:
"PREFERRED"
Указывает, что этот вход, скорее всего, обеспечивает физический доступ к возвращенному месту. У места может быть несколько предпочтительных входов. Если у входа нет этого тега, значит он находится в том же здании, но не обязательно ведет к объекту.
Например, если возвращенное место – это ресторан в торговом центре, то входы
"PREFERRED"будут вести в сам ресторан, а другие возвращенные входы будут другими входами в здание, например входами в другие рестораны в торговом центре.Если возвращенное место само по себе является зданием, то входы
"PREFERRED"будут вести в его основную часть. Например, в торговом центре входы"PREFERRED"будут вести в главный холл, а вход, ведущий только в магазин сбоку здания, не будет входом"PREFERRED".streetViewThumbnailиstreetViewAnnotationПараметры для Street View Static API, позволяющие показывать релевантные изображения для этих местоположений. Подробнее об этих полях…
structureType
Тип строения, которое представляет это место.
POINTТочка.
SECTIONЧасть здания.
BUILDINGЗдание.
GROUNDSБольшая территория, на которой обычно расположено несколько зданий, например университетский кампус, жилой комплекс или торговый центр.
navigationPoints
Поле navigationPoints в ответе геокодирования содержит список точек, которые можно использовать для навигации к месту. В частности, их следует использовать в качестве начальных или конечных точек при построении маршрута по дорожной сети.
Каждая точка навигации содержит следующие значения:
navigationPointToken– токен, содержащий контекстную информацию в полеnavigationPoints. Вы можете отправлять этот токен в API для построения маршрутов и навигации, чтобы улучшить маршруты и навигацию по рекам в своем приложении. Подробнее о том, как строить маршруты с помощью токенов навигационных точек…location– содержит значения широты и долготы точки навигации. Эта точка всегда находится очень близко к дорожной сети и представляет собой идеальный пункт отправления или назначения при навигации. Точка намеренно немного смещена относительно осевой линии дороги, чтобы четко обозначить сторону дороги, на которой находится место.travelModes– список способов передвижения, с помощью которых можно добраться до точки навигации:"DRIVE"– способ передвижения, соответствующий автомобильному маршруту."WALK"– способ передвижения, соответствующий пешеходному маршруту.
usages– список вариантов использования, поддерживаемых точкой навигации. Варианты использования:"DROPOFF""PICKUP""PARKING"
Для посадки и высадки используйте точку навигации, где способ передвижения – DRIVE, а использование – PICKUP или DROPOFF. Если точки посадки или высадки недоступны, используйте верхнюю точку навигации для автомобилистов.
streetViewThumbnailиentranceAnnotationпредоставляют параметры для Street View Static API, позволяя показывать изображения для этих местоположений. Подробнее об этих полях…
altitude_metersсодержит высоту точки навигации в метрах относительно эллипсоида WGS-84. Если сегменты дороги расположены друг над другом, используйте полеaltitude_meters, чтобы выбрать лучший сегмент для навигации.
landmarks
Известные места рядом, чтобы пользователи могли лучше понять, что находится рядом с пунктом назначения.
Каждый ориентир содержит следующие поля:
place– это объектPlaceView, представляющий эту достопримечательность.relationalDescription– человекочитаемое описание того, как пункт назначения связан с ориентиром, например "Рядом с Эмпайр-стейт-билдинг" или "Напротив Белого дома".tags[]– массив тегов, описывающих, как ориентир может использоваться в контексте пункта назначения:"ADDRESS"– местная достопримечательность, по которой можно определить приблизительное местоположение пункта назначения."ARRIVAL"– место, которое может помочь добраться до пункта назначения. Оно полезно для навигации, когда вы уже почти прибыли.
straightLineDistanceMeters– расстояние по прямой от ориентира до целевого местоположения в метрах.travelDistanceMeters– расстояние от ориентира до пункта назначения в метрах.
arrivalSummary
Подсказки на основе искусственного интеллекта, которые помогут вам добраться до места назначения. Подробнее о кратких пересказах от ИИ…
parkingOptions
Подробная информация о парковке.
Формат ответа
SearchDestinations возвращает объект SearchDestinationsResponse в следующем формате JSON:
{ "destinations": [ { "primary": { "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w", "displayName": { "text": "Arby's", "languageCode": "en" }, "primaryType": "fast_food_restaurant", "types": [ "fast_food_restaurant", "sandwich_shop", "deli", "meal_takeaway", "food_delivery", "american_restaurant", "restaurant", "food_store", "store", "food", "point_of_interest", "establishment" ], "formattedAddress": "Arby's, 601 S Bernardo Ave, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "601 S Bernardo Ave" ] }, "structureType": "BUILDING", "location": { "latitude": 37.3734545, "longitude": -122.05693269999998 }, "displayPolygon": { "type": "Polygon", "coordinates": [ [ [ -122.056930138027, 37.3735253692531 ], [ -122.056960139391, 37.3735372663597 ], [ -122.056994129366, 37.3734828786847 ], [ -122.056969677395, 37.3734731161089 ], [ -122.057061762447, 37.3733261309656 ], [ -122.056979388817, 37.3732935577128 ], [ -122.056798860285, 37.3735818838642 ], [ -122.056875858081, 37.3736121235316 ], [ -122.056930138027, 37.3735253692531 ] ] ] } }, "containingPlaces": [ { "place": "places/ChIJYfdAFum2j4ARIcL2tjME3Sw", "displayName": { "text": "Cherry Chase Shopping Center", "languageCode": "en" }, "primaryType": "shopping_mall", "types": [ "shopping_mall", "point_of_interest", "establishment" ], "formattedAddress": "Cherry Chase Shopping Center, 663 S Bernardo Ave, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1020", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "663 S Bernardo Ave" ] }, "structureType": "GROUNDS", "location": { "latitude": 37.3731231, "longitude": -122.0578211 }, "displayPolygon": { "type": "Polygon", "coordinates": [ [ [ -122.057112227103, 37.3714618008523 ], [ -122.057076849821, 37.3715743611411 ], [ -122.056963607756, 37.3719081793948 ], [ -122.056865279559, 37.3722026053835 ], [ -122.056687872374, 37.3727258358476 ], [ -122.056580005889, 37.3730511370747 ], [ -122.056498845827, 37.3732994782583 ], [ -122.056338259713, 37.3737878663325 ], [ -122.056618678291, 37.373887693582 ], [ -122.056912102521, 37.3740010327191 ], [ -122.057532418159, 37.3742476426462 ], [ -122.057673926626, 37.3742441740031 ], [ -122.057735663106, 37.3742328516943 ], [ -122.057766531332, 37.3742220604378 ], [ -122.057797572967, 37.37420520725 ], [ -122.057828267759, 37.3741852342085 ], [ -122.058060299297, 37.3740060842535 ], [ -122.058199726081, 37.3737861673422 ], [ -122.05836707267, 37.373524542556 ], [ -122.058569622393, 37.3732018598683 ], [ -122.0587638478, 37.3728890198039 ], [ -122.058934661823, 37.3726036257774 ], [ -122.059164956851, 37.3722498383629 ], [ -122.058997784906, 37.3721804442035 ], [ -122.057936479838, 37.3717605636234 ], [ -122.057495827092, 37.3715860151634 ], [ -122.057112227103, 37.3714618008523 ] ] ] } } ], "landmarks": [ { "place": { "place": "places/ChIJXXTe7Oi2j4ARoMTA-D6Hjpg", "displayName": { "text": "Chase Bank", "languageCode": "en" }, "primaryType": "bank", "types": [ "bank", "atm", "finance", "point_of_interest", "establishment" ], "formattedAddress": "Chase Bank, 1234 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1234 W El Camino Real" ] }, "structureType": "POINT", "location": { "latitude": 37.373579, "longitude": -122.05752700000001 } }, "relationalDescription": { "text": "Near Chase Bank", "languageCode": "en" }, "tags": [ "ARRIVAL", "ADDRESS" ], "straightLineDistanceMeters": 61.182193756103516, "travelDistanceMeters": 63.075645446777344 }, { "place": { "place": "places/ChIJteQ0Fum2j4ARGi3tqK4Zm14", "displayName": { "text": "Safeway", "languageCode": "en" }, "primaryType": "grocery_store", "types": [ "grocery_store", "butcher_shop", "florist", "deli", "supermarket", "bakery", "food_delivery", "market", "manufacturer", "food_store", "store", "food", "service", "point_of_interest", "establishment" ], "formattedAddress": "Safeway, 639 S Bernardo Ave, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "639 S Bernardo Ave" ] }, "structureType": "POINT", "location": { "latitude": 37.3727912, "longitude": -122.0581172 } }, "relationalDescription": { "text": "Around the corner from Safeway", "languageCode": "en" }, "tags": [ "ARRIVAL", "ADDRESS" ], "straightLineDistanceMeters": 158.65606689453125, "travelDistanceMeters": 131.1669921875 }, { "place": { "place": "places/ChIJu-PSYui2j4ARNiwOwBApGqk", "displayName": { "text": "Oil Changers", "languageCode": "en" }, "types": [ "car_repair", "service", "point_of_interest", "establishment" ], "formattedAddress": "Oil Changers, 1240 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1240 W El Camino Real" ] }, "structureType": "POINT", "location": { "latitude": 37.3743054, "longitude": -122.0584272 } }, "relationalDescription": { "text": "Down the road from Oil Changers", "languageCode": "en" }, "tags": [ "ARRIVAL" ], "straightLineDistanceMeters": 140.52459716796875, "travelDistanceMeters": 143.24220275878906 }, { "place": { "place": "places/ChIJKRbl5oG3j4ARwuvPGUmtCj0", "displayName": { "text": "Apni Mandi Farmers Market Sunnyvale", "languageCode": "en" }, "primaryType": "grocery_store", "types": [ "grocery_store", "cake_shop", "supermarket", "asian_grocery_store", "indian_restaurant", "meal_takeaway", "bakery", "manufacturer", "wholesaler", "restaurant", "food_store", "store", "food", "point_of_interest", "establishment" ], "formattedAddress": "Apni Mandi Farmers Market Sunnyvale, 1111 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1056", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1111 W El Camino Real" ] }, "structureType": "POINT", "location": { "latitude": 37.3737199, "longitude": -122.0522958 } }, "relationalDescription": { "text": "Near Apni Mandi Farmers Market Sunnyvale", "languageCode": "en" }, "tags": [ "ADDRESS" ], "straightLineDistanceMeters": 410.37435913085938, "travelDistanceMeters": 479.49893188476562 }, { "place": { "place": "places/ChIJ8enMlui2j4AR2xXK5EHDhBs", "displayName": { "text": "Starbird Chicken", "languageCode": "en" }, "primaryType": "chicken_restaurant", "types": [ "chicken_restaurant", "fast_food_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "Starbird Chicken, 1241 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1028", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1241 W El Camino Real" ] }, "structureType": "BUILDING", "location": { "latitude": 37.3746764, "longitude": -122.05708860000001 }, "displayPolygon": { "coordinates": [ [ [ -122.057003840785, 37.3747648209809 ], [ -122.057136852459, 37.3747919153144 ], [ -122.057205005705, 37.3745815131859 ], [ -122.057071994114, 37.3745544186944 ], [ -122.057003840785, 37.3747648209809 ] ] ], "type": "Polygon" } }, "relationalDescription": { "text": "Near Starbird Chicken", "languageCode": "en" }, "tags": [ "ADDRESS" ], "straightLineDistanceMeters": 87.348007202148438, "travelDistanceMeters": 214.08084106445312 } ], "entrances": [ { "location": { "latitude": 37.3735328, "longitude": -122.05694879999999 }, "tags": [ "PREFERRED" ], "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w" } ], "navigationPoints": [ { "navigationPointToken": "ChIJeMt61tqvQkARWT2716SDXsASEgljyy_n6LaPgBH9LoGUMNHjbBoSCWPLL-foto-AEf0ugZQw0eNsIhIJhf5y6ei2j4ARz7yBW5KAPI4", "location": { "latitude": 37.3738659, "longitude": -122.05693620000001 }, "travelModes": [ "DRIVE", "WALK" ], "usages": [ "PARKING" ] } ] } ] }
Обязательные параметры
- В запросе к API должен быть один из трех параметров, в котором указывается адрес, место или местоположение, где нужно найти пункт назначения:
addressQuery– адрес, который нужно найти.place– идентификатор места, которое нужно найти.locationQuery– координаты широты и долготы местоположения, которое нужно найти.
FieldMask
Укажите список полей, которые нужно вернуть в ответе, создав маску поля ответа. Передайте маску поля ответа методу, используя параметр URL
$fieldsилиfieldsлибо заголовок HTTPX-Goog-FieldMask. Например, приведенный ниже запрос вернет только входы, точки навигации и идентификатор места основного пункта назначения.curl -X POST -d '{"place": "places/ChIJG3kh4hq6j4AR_XuFQnV0_t8"}' \ -H "X-Goog-Api-Key: API_KEY" \ -H "Content-Type: application/json" \ -H "X-Goog-FieldMask: destinations.entrances,destinations.navigationPoints,destinations.primary.place" \ https://geocode.googleapis.com/v4/geocode/destinationsВ ответе нет списка полей по умолчанию. Если вы не укажете маску поля, метод вернет ошибку. Чтобы вернуть все поля, задайте для маски поля значение
*. Подробнее о том, как выбрать поля, которые нужно вернуть…
Необязательные параметры
-
travelModes
Указывает, какие типы
navigationPointsнужно вернуть. Навигационные точки для других видов транспорта будут отфильтрованы. Если параметрtravelModesне задан, могут быть возвращены навигационные точки для всех способов передвижения. languageCode
Язык, на котором будут возвращены результаты.
- Вы можете ознакомиться со списком поддерживаемых языков. Google часто обновляет список поддерживаемых языков, поэтому он может быть неполным.
-
Если параметр
languageCodeне указан, API по умолчанию использует местный язык и письменность. Если вы укажете недопустимый код языка, API вернет ошибкуINVALID_ARGUMENT. - API старается предоставить почтовый адрес, который будет понятен как пользователю, так и местным жителям. Для этого он возвращает адреса улиц на местном языке, при необходимости транслитерируя их в шрифт, который может прочитать пользователь, с учетом предпочитаемого языка. Все остальные адреса возвращаются на предпочитаемом языке. Все компоненты адреса возвращаются на одном языке, который выбирается на основе первого компонента.
- Если название на выбранном языке недоступно, API использует наиболее близкое соответствие.
- Предпочтительный язык немного влияет на набор результатов, возвращаемых API, и на порядок их возврата. Геокодер интерпретирует сокращения по-разному в зависимости от языка. Это касается, например, сокращений для типов улиц или синонимов, которые могут быть допустимы в одном языке, но не в другом.
regionCode
Код региона в виде двухсимвольного кода CLDR. Значение по умолчанию отсутствует. Большинство кодов CLDR совпадают с кодами ISO 3166-1.
При геокодировании адреса (прямом геокодировании) этот параметр может влиять на результаты, возвращаемые сервисом, но не ограничивать их полностью указанным регионом. При геокодировании местоположения или места (обратное геокодирование или геокодирование места) этот параметр можно использовать для форматирования адреса. Во всех случаях этот параметр может влиять на результаты в соответствии с действующим законодательством.
-
placeFilter
Позволяет фильтровать результаты поиска
locationQueryв соответствии с вашими требованиями, например возвращать только пункты назначения, которые являются зданиями, или только пункты назначения с точными адресами.Фильтрация по уровню детализации структуры
Фильтр
structureTypeпозволяет указать, какие типы структур должны возвращаться по запросу:- Изоляция зданий. Используйте
"structureType": "BUILDING", чтобы показать контуры зданий на карте или получить информацию о конкретном строении. - Понимание комплексов. Используйте
"structureType": "GROUNDS", чтобы основной результат был связан с территорией комплекса. Это полезно при запросе больших территорий, таких как университетские городки или торговые центры. - Указание на единицы/секции. Используйте
"structureType": "SECTION", чтобы указать секции здания.
Убедитесь, что адреса полезны
Не у всех мест есть четкие адреса. Фильтр
addressabilityпозволяет контролировать качество адресов в результатах поиска:- Требовать указания основного адреса. Чтобы основной результат поиска всегда содержал адрес или название на уровне улицы, используйте
"addressability": "PRIMARY". Это полезно для навигации или отображения, когда важен точный адрес. - Разрешить адреса в дочерних объектах. Если у основного места нет адреса, но он есть у дочерних объектов (например, у квартир в доме),
"addressability": "WEAK"проверяет, есть ли адрес хотя бы у основного места или одного из дочерних объектов. - Любой результат. Если наличие адреса не имеет значения для вашего варианта использования, выберите
"addressability": "ANY". Это настоятельно рекомендуется, если вам нужны только геометрические атрибуты, такие как контуры зданий и точки навигации, поскольку это повышает точность результатов.
Пример: фильтрация зданий с адресами
curl -X POST -d '{ "locationQuery": { "location": { "latitude": 37.37348780, "longitude": -122.05678064 }, "placeFilter": { "structureType": "BUILDING", "addressability": "PRIMARY" } }, "languageCode": "en" }' \\ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \\ -H "X-Goog-FieldMask: place" \\ https://geocode.googleapis.com/v4/geocode/destinations - Изоляция зданий. Используйте