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

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

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

Чтобы обеспечить совместимость, используйте Autocomplete (New) для поиска идентификаторов мест, которые будут использоваться с Search Destinations. При использовании нового API Autocomplete вы должны фильтровать результаты по типу с помощью параметра includedPrimaryTypes. Идентификаторы мест, возвращаемые Autocomplete (New) с использованием следующего рекомендуемого фильтра, поддерживаются Search Destinations:

"includedPrimaryTypes": [ "establishment", "point_of_interest", "premise", "street_address", "subpremise" ]

Кроме того, в запросе к Place 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.

Вы также можете использовать общую область действия https://www.googleapis.com/auth/cloud-platform для всех методов Geocoding API. Эта область действия полезна на этапе разработки, но не в рабочей среде, поскольку она является общей и предоставляет доступ ко всем методам.

Дополнительную информацию и примеры можно найти в статье Как использовать OAuth.

Ответ на запрос поиска пунктов назначения

Ответ Search Destinations содержит подробную гиперлокальную информацию о месте.

Объекты 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[] имеют следующие поля:

  • displayName

    Объект LocalizedText, содержащий человекочитаемое название входа (например, "South Bernardo Avenue" или "5th Avenue"), если оно доступно.

  • 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": [
        {
          "displayName": {
            "text": "South Bernardo Avenue",
            "languageCode": "en"
          },
          "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
    
  • усилия

    Экспериментальная функция. Параметр effort является экспериментальным. Формируйте HTTP-запросы с помощью канала /v4alpha/. Подробнее о каналах на этапе запуска…

    Указывает объем обработки Effort, который нужно применить при разрешении целевого запроса (в основном влияет на разрешение addressQuery):

    • EFFORT_UNSPECIFIED – значение по умолчанию. Работает так же, как и LOW.
    • LOW – оптимизирует скорость ответа. Не выполняет расширенный поиск и не уточняет неоднозначные адреса.
    • MEDIUM – оптимальное соотношение скорости и точности. Большинство запросов возвращаются со стандартной низкой задержкой. Для неоднозначных или сложных адресов сервис применяет дополнительную обработку, чтобы повысить точность. Это может занять несколько секунд. Рекомендуется для интерактивных рабочих процессов, в которых пользователи могут подождать некоторое время.
    • HIGH – повышает точность определения адреса для неполных, неформальных или сложных адресов. Время ответа может быть значительно больше. Рекомендуется для фоновых, пакетных или логистических рабочих процессов.

    Например, в следующем запросе используется "effort": "HIGH" для разрешения запроса адреса назначения:

    curl -X POST -d '{
      "addressQuery": {
        "addressQuery": "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West, Mumbai"
      },
      "effort": "HIGH"
    }' \
    -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
    -H "X-Goog-FieldMask: *" \
    https://geocode.googleapis.com/v4alpha/geocode/destinations
    

    Подробную информацию об ожидаемой задержке, ограничениях частоты запросов и рекомендуемых шаблонах интеграции можно найти в разделе Геокодирование с повышенной точностью.