Preferência de trajeto mais curto

Quando as rotas são calculadas (incluindo reencaminhamento), o trajeto que leva o menor tempo para navegar é retornado como a melhor rota padrão. No entanto, é possível alterar a estratégia de roteamento para que as alternativas de trajeto mais curtas sejam retornadas.

O termo mais curto significa que o trajeto é o mais curto entre os resultados de trajetos ideais com base no modelo de custo padrão. O trajeto mais curto pode não ser o absoluto mais curto, porque ele pode ser uma alternativa ruim. Por exemplo, quando o trajeto mais curto é 10 km e leva 50 minutos para navegar, enquanto o trajeto mais curto ideal é de 15 km e leva 20 minutos para navegar. Desperdiçar 30 minutos para reduzir 5 km não é uma boa troca.

Depois de definir a estratégia de trajeto de uma viagem, ela não será alterada até que a viagem seja concluída. Para alterar a estratégia de roteamento, você precisa limpar os destinos e redefini-los novamente com a nova estratégia.

Como definir a estratégia de roteamento

Você pode configurar a navegação para usar a estratégia de roteamento de rota mais curta definindo RoutingOptions.routingStrategy ao chamar setDestinations().

RoutingOptions.routingStrategy usa um dos dois valores de enumeração a seguir:

Valor de enumeraçãoDescrição
RoutingStrategy.DEFAULT_BEST Classifica as rotas pelo modelo de custo padrão do SDK de navegação. Essa é a estratégia de roteamento padrão.
RoutingStrategy.SHORTER Classifica os trajetos por distância. O trajeto com a classificação mais alta é o mais curto entre os retornados.

Exemplo

O exemplo de código a seguir demonstra como definir a estratégia de roteamento de rota mais curta.

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

Detalhes da rota

Quando o trajeto mais curto leva muito tempo, o melhor trajeto padrão é a melhor opção. Você pode comparar estratégias de roteamento chamando getRouteInfo() para ver detalhes da rota para cada uma delas. Os detalhes incluem a duração e a distância até um waypoint de destino.

Como acessar detalhes do trajeto

Você pode recuperar detalhes da rota para as duas estratégias de trajeto (a melhor rota padrão e a mais curta) para um único waypoint. Esses detalhes são provenientes de RouteInfo e são retornados em um ListenableResultFuture.

Exemplo

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

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

Formato da frase de destaque do trajeto.

Na estratégia de trajeto mais curto, as frases de destaque ao longo do trajeto mostram detalhes da distância. No entanto, você pode usar as frases de destaque de HEC.

Como configurar o formato da frase de destaque da rota

É possível alterar o formato da frase de destaque 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 trajeto mais curto.
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 frase de destaque de rota.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);