найти пункты назначения;

Разработчики из Европейской экономической зоны (ЕЭЗ)

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 в ответе геокодирования содержит список точек, которые можно использовать для навигации к месту. В частности, их следует использовать в качестве начальных или конечных точек при построении маршрута по дорожной сети.

Каждая точка навигации содержит следующие значения:

  • 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 либо заголовок HTTP X-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