Ajustar preferências de roteamento

Os cálculos de rota (incluindo a mudança de rota) retornam a rota que leva o menor tempo para navegar como a melhor rota padrão. No entanto, é possível mudar a estratégia de roteamento para que a alternativa mais curta seja retornada.

O termo menor significa a rota mais curta entre as rotas ideais com base no nosso modelo de custo padrão. A rota mais curta pode não ser a absoluta, 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 tiver 15 km, mas levar apenas 20 minutos, a segunda opção é ideal, porque gastar 30 minutos para reduzir cinco quilômetros 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, é necessário limpar os destinos e redefini-los novamente com a nova estratégia de roteamento.

Como conferir detalhes da rota

Para determinar qual estratégia de rota é a melhor escolha para um determinado ponto de passagem, chame getRouteInfo() para conferir os detalhes da rota para a melhor rota padrão e a 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 abaixo demonstra como receber detalhes de trajeto 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 do Navigation. Essa é a estratégia de roteamento padrão.
RoutingStrategy.SHORTER Ordena as rotas por distância. A rota com a classificação mais alta é a mais curta das retornadas.

Exemplo

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

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 como parte das rotas, ajuste essa preferência de roteamento para mostrar a viagem aos segmentos de balsa definindo avoidFerries como false.

Exemplo

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

Formato da frase de destaque da rota

Na preferência de rota mais curta, os destaques ao longo da rota mostram detalhes de distância. Mas você pode usar as chamadas de tempo estimado.

Como configurar o formato da chamada de atenção da rota

É possível mudar o formato do ícone de rota chamando setRouteCalloutInfoFormat em NavigationView (ou em NavigationFragment). setRouteCalloutInfoFormat usa 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 de melhor rota 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 de chamada de atenção do trajeto.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);