Настройка предпочтений маршрутизации

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

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

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

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

Стратегию маршрутизации можно настроить, задав значение 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);

Маршруты, включающие паромы

По умолчанию NavSDK исключает маршруты, включающие паромы. Если вы предпочитаете включать варианты с паромами в свои маршруты, вы можете изменить этот параметр маршрутизации, чтобы сделать поездку доступной для сегментов с паромами, установив avoidFerries в значение false .

Пример

RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);

Формат указания маршрута

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

Настройка формата вызова маршрута

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

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

Пример

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

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);