Управление путевыми точками

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

  • Предпочтительная сторона дороги
  • Функция остановки

Предпочтительная сторона дороги

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

Предпочитать ту же сторону дороги

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

Waypoint waypoint =
   Waypoint.builder()
           .setLatLng(latitude, longitude)
           .setTitle("Somewhere in Sydney")
           .setPreferSameSideOfRoad(true)
           .build()

Как задать курс прибытия

Вы указываете географические координаты путевой точки, а затем указываете курс прибытия (setPreferredHeading), который соответствует направлению транспортного потока на той же стороне дороги, что и ожидающий потребитель.

Waypoint waypoint =
   Waypoint.builder()
           .setLatLng(latitude, longitude)
           .setTitle("Somewhere in Sydney")
           .setPreferredHeading(preferredHeading)
           .build()

Navigation SDK выбирает сегмент дороги, ближайший к путевой точке, направление полосы которого совпадает (в пределах +/- 55 градусов) со стороной дороги, на которой находится путевая точка.

Задать предпочтения по остановкам

В некоторых местах водители не могут безопасно остановиться (например, на возвышенностях, паромах, подземных парковках и других зонах с ограниченным доступом). Функция Остановка перемещает путевую точку в ближайшее место, если ее местоположение не подходит для остановки транспортного средства. Если для параметра setVehicleStopover задано значение true, то при расчете маршрута путевая точка автоматически перемещается, если доступно альтернативное местоположение.

Принцип работы

Вы задаете предпочтения для остановки при создании путевой точки для этой остановки. Для этого укажите предпочтение setVehicleStopover, как показано в примере ниже.

Waypoint waypoint =
   Waypoint.builder()
           .setLatLng(latitude, longitude)
           .setTitle("Somewhere in Sydney")
           .setVehicleStopover(true)
           .build()