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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы определить местоположение в маршрутной точке, укажите местоположение (REST) ​​или местоположение (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).

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

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

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

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

Если значение адреса неоднозначно, API маршрутов может вызвать поиск для устранения неоднозначности похожих адресов. Например, «1-я улица» может быть полным или частичным значением для «1-я улица СВ» или «1-я улица ЮВ». Этот результат может отличаться от результата, возвращаемого API геокодирования. Вы можете избежать возможных неправильных интерпретаций, используя идентификаторы мест.

Установите регион для адреса

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

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

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

{
  []
}

Вы можете настроить API для возврата результатов, относящихся к определенному региону, включив параметр regionCode . Этот параметр определяет код региона в виде двухсимвольного значения ccTLD («домен верхнего уровня») . Большинство кодов ccTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для субъекта «Соединенное Королевство Великобритании и Северной Ирландии»).

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

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

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

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

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

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

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

Google разработал плюс-коды , чтобы предоставить преимущества адресов всем и вся. Плюс-код — это закодированная ссылка на местоположение, полученная из координат широты и долготы, которая представляет собой площадь: 1/8000 градуса на 1/8000 градуса (около 14 х 14 м на экваторе) или меньше. Вы можете использовать коды Plus вместо уличных адресов в местах, где их нет или где здания не пронумерованы или улицы не названы.

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

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

    Например, для адреса «1600 Amphitheatre Parkway, Mountain View, CA» глобальный код — «849V», а локальный код — «CWC8+R9». Затем вы используете весь 10-значный код плюса, чтобы указать значение местоположения как «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"
    }

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