Ajustar preferências de roteamento

Os cálculos de rota (incluindo o recálculo) retornam o trajeto que leva menos tempo para navegar como a melhor rota padrão. Mas você pode mudar a estratégia de roteamento para que a alternativa de rota mais curta seja retornada.

O termo mais curto significa o trajeto mais curto entre os trajetos ideais com base no nosso modelo de custo padrão. A rota mais curta pode não ser a absolutamente mais curta, já que essa opção pode ser uma alternativa ruim. Por exemplo, se o trajeto mais curto for de 10 km e levar 50 minutos para ser percorrido, e outro trajeto for de 15 km, mas levar apenas 20 minutos, a segunda opção é ideal, porque gastar 30 minutos para reduzir 5 km não é uma boa troca.

Depois de definir a estratégia de roteamento para uma viagem, ela não vai mudar até que a viagem seja concluída. Para mudar a estratégia de roteamento de uma viagem, limpe os destinos e redefina-os com a nova estratégia.

Como receber detalhes do trajeto

Para determinar qual estratégia de rota é a melhor opção para um determinado ponto de referência, chame getRouteInfo() para receber detalhes da rota padrão e da rota mais curta absoluta. Os detalhes incluem a duração e a distância até um waypoint de destino.

Esses detalhes vêm de RouteInfo e são retornados em um ListenableResultFuture.

Exemplo

O exemplo de código a seguir demonstra como receber detalhes de rota para cada uma das duas estratégias de roteamento.

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

Como definir a estratégia de roteamento

É possível configurar a estratégia de roteamento definindo RoutingOptions.routingStrategy ao chamar setDestinations().

RoutingOptions.routingStrategy usa um dos seguintes valores de enumeração:

Valor de enumeraçãoDescrição
RoutingStrategy.DEFAULT_BEST Classifica as rotas pelo modelo de custo padrão do SDK Navigation. Essa é a estratégia de roteamento padrão.
RoutingStrategy.SHORTER Classifica os trajetos por distância. A rota de classificação mais alta é a mais curta entre as retornadas.

Exemplo

O exemplo de código a seguir demonstra como definir a preferência de rota mais curta.

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

Rotas que incluem balsas

Por padrão, o NavSDK exclui rotas que incluem balsas. Se você preferir incluir opções de balsa nos trajetos, ajuste essa preferência de roteamento para mostrar os trechos de balsa da viagem definindo avoidFerries como false.

Exemplo

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

O formato da frase de destaque do trajeto

Na preferência de trajeto mais curto, os indicadores ao longo do trajeto mostram detalhes da distância. Mas você pode usar os callouts de ETA.

Configurar o formato do destaque de rota

Para mudar o formato da frase de destaque da rota, chame setRouteCalloutInfoFormat em NavigationView (ou em NavigationFragment). setRouteCalloutInfoFormat aceita um dos seguintes valores de enumeração:

Valor de enumeraçãoDescrição
RouteCalloutInfoFormat.DEFAULT Mostra o tempo restante ao usar a estratégia de roteamento do melhor trajeto padrão. Mostra a distância restante ao usar a estratégia de roteamento de rota mais curta.
RouteCalloutInfoFormat.TIME Mostra o tempo restante.
RouteCalloutInfoFormat.DISTANCE Mostra a distância restante.

Exemplo

O exemplo de código a seguir demonstra como configurar o formato do callout de rota.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);