Les calculs d'itinéraires (y compris le calcul d'un nouvel itinéraire) renvoient l'itinéraire le plus court comme meilleur itinéraire par défaut. Vous pouvez toutefois modifier la stratégie de routage afin que le plus court des itinéraires alternatifs soit renvoyé à la place.
Le terme plus court désigne l'itinéraire le plus court parmi les itinéraires optimaux, en fonction de notre modèle de coût par défaut. Le trajet le plus court n'est pas forcément le trajet le plus court, car cette option peut être une mauvaise alternative. Par exemple, si l'itinéraire le plus court mesure 10 km et prend 50 minutes à parcourir, et qu'un autre itinéraire mesure 15 km, mais ne prend que 20 minutes, le deuxième choix est optimal, car passer 30 minutes pour réduire de cinq km n'est pas un bon compromis.
Une fois que vous avez défini la stratégie de calcul d'itinéraire pour un trajet, elle ne change pas tant que le trajet n'est pas terminé. Pour modifier la stratégie de calcul d'itinéraire d'un trajet existant, vous devez effacer les destinations, puis les réinitialiser avec la nouvelle stratégie de calcul d'itinéraire.
Obtenir des informations sur un trajet
Pour déterminer quelle stratégie d'itinéraire est optimale pour un point de cheminement donné, appelez getRouteInfo()
pour obtenir des informations sur l'itinéraire le plus court par défaut et l'itinéraire le plus court absolu. Les détails incluent la durée et la distance jusqu'à un point de cheminement de destination.
Ces informations proviennent de RouteInfo
et sont renvoyées dans un ListenableResultFuture
.
Exemple
L'exemple de code suivant montre comment obtenir des informations sur l'itinéraire pour chacune des deux stratégies de calcul d'itinéraire.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
Définir la stratégie de routage
Vous pouvez configurer la stratégie de routage en définissant RoutingOptions.routingStrategy
lorsque vous appelez setDestinations()
.
RoutingOptions.routingStrategy
prend l'une des valeurs d'énumération suivantes:
Valeur d'énumération | Description |
---|---|
RoutingStrategy.DEFAULT_BEST | Classifie 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 | Classifie les itinéraires par distance. Le parcours le mieux classé est le plus court de ceux renvoyés. |
Exemple
L'exemple de code suivant montre comment définir la préférence pour le trajet le plus court.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Itinéraires comprenant des ferries
Par défaut, le NavSDK exclut les itinéraires qui incluent des ferries. Si vous préférez inclure des options de ferry dans vos itinéraires, vous pouvez ajuster cette préférence de calcul d'itinéraire pour exposer le trajet aux segments de ferry en définissant avoidFerries
sur false
.
Exemple
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
Format de la accroche de l'itinéraire
Sous la préférence de trajet le plus court, les accroches le long du trajet affichent des informations sur la distance. Vous pouvez toutefois utiliser les accroches d'heure d'arrivée estimée à la place.
Configurer le format de la accroche de la route
Vous pouvez modifier le format de la callout de l'itinéraire en appelant setRouteCalloutInfoFormat
dans NavigationView
(ou dans NavigationFragment
). setRouteCalloutInfoFormat
prend l'une des valeurs d'énumération suivantes:
Valeur d'énumération | Description |
---|---|
RouteCalloutInfoFormat.DEFAULT | Indique le temps restant lorsque vous utilisez la stratégie de routage par défaut du meilleur itinéraire. Indique la distance restante lorsque vous utilisez la stratégie d'itinéraire le plus court. |
RouteCalloutInfoFormat.TIME | Affiche le temps restant. |
RouteCalloutInfoFormat.DISTANCE | Indique la distance restante. |
Exemple
L'exemple de code suivant montre comment configurer le format de la balise de route.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);