Предпочтение по более короткому маршруту

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

Термин «короче» означает, что маршрут является самым коротким среди оптимальных результатов маршрутизации, основанных на нашей модели стоимости по умолчанию. Более короткий маршрут может не быть абсолютно кратчайшим, поскольку этот маршрут может оказаться плохой альтернативой. Например, если самый короткий маршрут составляет 10 км, а навигация занимает 50 минут, а оптимальный более короткий маршрут составляет 15 км, а навигация занимает 20 минут, то тратить 30 минут на сокращение пяти км — не лучший компромисс.

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

Настройка стратегии маршрутизации

Вы можете настроить навигацию для использования стратегии маршрутизации более короткого маршрута, установив RoutingOptions.routingStrategy при вызове setDestinations() .

RoutingOptions.routingStrategy принимает одно из следующих двух значений перечисления:

Значение перечисления Описание
RoutingStrategy.DEFAULT_BEST Ранжирует маршруты по модели затрат Navigation SDK по умолчанию. Это стратегия маршрутизации по умолчанию.
RoutingStrategy.SHORTER Ранжирует маршруты по расстоянию. Маршрут с самым высоким рейтингом — самый короткий из возвращенных.

Пример

В следующем примере кода показано, как установить стратегию маршрутизации более короткого маршрута.

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);

Детали маршрута

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

Получение деталей маршрута

Вы можете получить подробную информацию о маршруте для обеих стратегий маршрутизации (лучший маршрут по умолчанию и более короткий маршрут) для одной путевой точки. Эти сведения поступают из RouteInfo и возвращаются в ListenableResultFuture .

Пример

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

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

Формат обозначения маршрута

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

Настройка формата обозначения маршрута

Вы можете изменить формат выноски маршрута, вызвав setRouteCalloutInfoFormat в NavigationView (или в NavigationFragment ). setRouteCalloutInfoFormat принимает одно из следующих значений перечисления:

Значение перечисления Описание
RouteCalloutInfoFormat.DEFAULT Отображает оставшееся время при использовании стратегии маршрутизации наилучшего маршрута по умолчанию. Отображает оставшееся расстояние при использовании стратегии прокладки более короткого маршрута.
RouteCalloutInfoFormat.TIME Отображает оставшееся время.
RouteCalloutInfoFormat.DISTANCE Отображает оставшееся расстояние.

Пример

В следующем примере кода показано, как настроить формат обозначения маршрута.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);