Укажите местоположения для маршрута

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

Для расчета маршрута необходимо указать как минимум начальную и конечную точки маршрута. Эти точки задаются как промежуточные точки на маршруте.

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

Укажите места для маршрута

Местоположение можно задать, создав объект Waypoint (REST) ​​или Waypoint (gRPC) . В определении путевой точки можно указать местоположение одним из следующих способов:

В запросе можно указать местоположения для всех путевых точек одинаковым образом или же использовать смешанный подход. Например, для начальной путевой точки можно использовать координаты широты/долготы, а для конечной — идентификатор места.

Для повышения эффективности и точности используйте идентификаторы мест вместо координат широты/долготы или строковых адресов. Идентификаторы мест являются уникальными и обеспечивают преимущества геокодирования для маршрутизации, например, для точек доступа и переменных трафика. Они помогают избежать следующих ситуаций, которые могут возникнуть при других способах указания местоположения:

  • Использование координат широты/долготы может привести к тому, что местоположение будет привязано к ближайшей к этим координатам дороге, которая может не являться подъездной дорогой к объекту или даже дорогой, которая быстро и безопасно ведет к месту назначения.
  • Перед расчетом маршрута адресные строки должны быть предварительно геокодированы с помощью API маршрутов для преобразования их в координаты широты и долготы. Это преобразование может повлиять на производительность.

Укажите местоположение в качестве идентификатора места.

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

Получайте идентификаторы мест из API геокодирования и API мест (новое) (включая автозаполнение (новое)). Подробнее об идентификаторах мест см. в обзоре идентификаторов мест .

В следующем примере свойство placeId используется для передачи идентификаторов мест как для origin , так и destination :

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

Укажите местоположение в виде координат широты и долготы.

Для определения местоположения в путевой точке укажите Location (REST) ​​или Location (gRPC) , используя координаты широты/долготы.

Например, укажите путевую точку для origin и destination маршрута, используя координаты latitude и longitude :

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

Укажите местоположение в виде адресной строки.

Адресные строки — это буквальные адреса, представленные строкой (например, "1600 Amphitheatre Parkway, Mountain View, CA"). Геокодирование — это процесс преобразования адресной строки в координаты широты и долготы (например, широта 37.423021 и долгота -122.083739).

Когда вы передаете строковый адрес в качестве местоположения путевой точки, API маршрутов внутренне выполняет геокодирование строки, преобразуя ее в координаты широты и долготы.

Например, для расчета маршрута необходимо указать путевые точки origin и destination маршрута, используя строковые адреса:

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

В этом примере API маршрутов выполняет геокодирование обоих адресов для преобразования их в координаты широты и долготы.

Если значение адреса неоднозначно, API маршрутов может инициировать поиск для уточнения соответствия похожим адресам. Например, "1st Street" может быть полным или частичным значением для "1st street NE" или "1st St SE". Этот результат может отличаться от результата, возвращаемого API геокодирования. Для предотвращения возможных неточностей можно использовать идентификаторы мест.

Укажите регион для адреса.

Если в качестве местоположения путевой точки передать неполную строку адреса, API может использовать неверные геокодированные координаты широты/долготы. Например, вы отправляете запрос, указав «Толедо» в качестве начальной точки и «Мадрид» в качестве конечной точки маршрута:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

В этом примере "Толедо" интерпретируется как город в штате Огайо, США, а не в Испании. Следовательно, запрос возвращает пустой массив, что означает отсутствие маршрутов:

{
  []
}

You can configure the API to return results biased to a particular region by including the regionCode parameter. This parameter specifies the region code as a ccTLD ("top-level domain") two-character value. Most ccTLD codes are identical to ISO 3166-1 codes, with some notable exceptions. For example, the United Kingdom's ccTLD is "uk" (.co.uk) while its ISO 3166-1 code is "gb" (technically for the entity of "The United Kingdom of Great Britain and Northern Ireland").

Запрос маршрута из "Толедо" в "Мадрид", содержащий параметр regionCode , возвращает корректные результаты, поскольку "Толедо" интерпретируется как город в Испании:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

В ответе теперь содержится рассчитанный маршрут из Толедо (Испания) в Мадрид (Испания):

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

Токен точки навигации — это строка, кодирующая местоположение и дополнительный контекст маршрута. Токены точек навигации могут обеспечивать точное построение маршрута к конкретным точкам доступа рядом с входами, погрузочными площадками или обозначенными зонами посадки/высадки. Это полезно в таких случаях, как доставка еды или услуги такси, когда точка посадки или высадки может быть неоднозначной.

Получить токен точки навигации можно, вызвав метод Destinations API геокодирования .

Чтобы указать токен точки навигации:

  1. Получите объект navigationPointToken из метода SearchDestinations API геокодирования . Дополнительную информацию см. в документации API геокодирования.
  2. Создайте путевую точку, передав в качестве параметра navigationPointToken .

В следующем примере свойство navigation_point_token используется для передачи токена точки навигации как для origin , так и для destination :

{
  "origin":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN"
  },
  "destination":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION"
  },
  ...
}

Укажите местоположение в качестве кода Plus.

У многих людей нет точного адреса, что может затруднить получение доставок. Или же люди, у которых есть адрес, могут предпочитать получать посылки в более конкретных местах, например, у заднего входа или на погрузочной площадке.

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

Google developed Plus Codes to give the benefit of addresses to everyone and everything. A Plus Code is an encoded location reference, derived from latitude/longitude coordinates, that represents an area: 1/8000th of a degree by 1/8000th of a degree (about 14m x 14m at the equator) or smaller. You can use Plus Codes as a replacement for street addresses in places where they don't exist or where buildings are not numbered or streets are not named.

Коды Plus должны быть отформатированы как глобальный код или составной код:

  • Глобальный код состоит из 4-символьного кода города и 6-символьного или более длинного местного кода .

    Например, для адреса "1600 Amphitheatre Parkway, Mountain View, CA" глобальный код — "849V", а локальный — "CWC8+R9". Затем вы используете весь 10-символьный код Plus Code, чтобы указать значение местоположения как "849VCWC8+R9".

  • Составной код — это код, состоящий из 6 или более символов локального кода, объединенного с указанием конкретного местоположения.

    Например, адрес "450 Serra Mall, Stanford, CA 94305, USA" имеет местный код "CRHJ+C3". Для составного адреса местный код объединяется с городом, штатом, почтовым индексом и страной в форме "CRHJ+C3 Stanford, CA 94305, USA".

    Например, можно рассчитать маршрут, указав путевые точки origin и destination маршрута с помощью Plus-кодов:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

В API платформы Google Maps, включая автозаполнение (новое) , подробную информацию о местах (новое) и API геокодирования , поддерживаются Plus-коды. Например, вы можете использовать API геокодирования для обратного геокодирования местоположения, заданного координатами широты/долготы, чтобы определить Plus-код этого местоположения.