Préférence d'itinéraire plus courte

Lorsque des routes sont calculées (y compris le réacheminement), l'itinéraire qui prend le moins de temps à parcourir est renvoyé comme meilleur itinéraire par défaut. Toutefois, vous pouvez modifier la stratégie de routage afin que la plus courte des alternatives de routage soit renvoyée à la place.

Le terme plus court signifie que l'itinéraire est le plus court parmi les résultats de routage optimaux en fonction de notre modèle de coût par défaut. L'itinéraire le plus court n'est peut-être pas l'itinéraire absolu le plus court, car il peut s'agir d'une mauvaise alternative. Par exemple, lorsque l'itinéraire le plus court est de 10 km et qu'il met 50 minutes à parcourir le trajet, tandis que l'itinéraire le plus court optimal est de 15 km et de 20 minutes pour le parcourir. Le fait de perdre 30 minutes pour réduire les cinq km n'est pas un bon compromis.

Une fois que vous avez défini la stratégie d'itinéraire d'un trajet, elle ne change pas tant que ce trajet n'est pas terminé. Pour modifier la stratégie de routage, vous devez effacer les destinations et les réinitialiser à nouveau avec la nouvelle stratégie de routage.

Définir la stratégie de routage

Vous pouvez configurer la navigation pour qu'elle utilise la stratégie de routage d'itinéraire plus courte en définissant RoutingOptions.routingStrategy lorsque vous appelez setDestinations().

RoutingOptions.routingStrategy utilise l'une des deux valeurs d'énumération suivantes:

Valeur d'énumérationDescription
RoutingStrategy.DEFAULT_BEST Il classe les itinéraires en fonction du modèle de coût par défaut du SDK Navigation. Il s'agit de la stratégie de routage par défaut.
RoutingStrategy.SHORTER Classe les itinéraires en fonction de la distance. L'itinéraire le mieux classé est le plus court parmi ceux renvoyés.

Exemple

L'exemple de code suivant montre comment définir la stratégie de routage de routes plus courte.

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

Détails de l'itinéraire

Lorsque l'itinéraire le plus court prend trop de temps, le meilleur itinéraire par défaut est le meilleur choix. Vous pouvez comparer les stratégies de routage en appelant getRouteInfo() afin d'obtenir les détails de l'itinéraire pour chacune d'elles. Les détails incluent la durée et la distance jusqu'au point de cheminement de destination.

Obtenir les détails de l'itinéraire

Vous pouvez récupérer les détails de l'itinéraire pour les deux stratégies de routage (meilleur itinéraire par défaut et itinéraire le plus court) pour un seul point de cheminement. Ces informations proviennent de RouteInfo et sont renvoyées dans un ListenableResultFuture.

Exemple

L'exemple de code suivant montre comment obtenir les détails de l'itinéraire pour chacune des deux stratégies de routage.

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

Format de l'accroche de l'itinéraire

Avec la stratégie d'itinéraire le plus court, les accroches le long de l'itinéraire affichent les détails de la distance. Vous pouvez toutefois utiliser les appels pour les ATA à la place.

Configurer le format de l'accroche de route

Vous pouvez modifier le format de l'accroche d'itinéraire en appelant setRouteCalloutInfoFormat dans NavigationView (ou dans NavigationFragment). setRouteCalloutInfoFormat utilise l'une des valeurs d'énumération suivantes:

Valeur d'énumérationDescription
RouteCalloutInfoFormat.DEFAULT Affiche le temps restant lorsque vous utilisez la meilleure stratégie de routage d'itinéraires par défaut. Affiche la distance restante lorsque vous utilisez la stratégie d'itinéraire le plus court.
RouteCalloutInfoFormat.TIME Affiche le temps restant.
RouteCalloutInfoFormat.DISTANCE Affiche la distance restante.

Exemple

L'exemple de code suivant montre comment configurer le format d'accroche de route.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);