Для расчета маршрута необходимо указать как минимум места начала и назначения маршрута. Вы определяете эти местоположения как путевые точки на маршруте.
Помимо пункта отправления и назначения, вы можете указать различные типы путевых точек и способы обработки путевых точек на маршруте. Дополнительную информацию и примеры см. в следующих темах:
- Укажите курс автомобиля и сторону дороги
- Укажите промежуточные путевые точки
- Установить остановку на маршруте
- Установите точку для прохождения маршрута
- Оптимизируйте порядок остановок на вашем маршруте
Укажите места для маршрута
Вы представляете местоположение, создавая объект 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 геокодирования для обратного геокодирования местоположения, указанного координатами широты и долготы, для определения плюсового кода местоположения.