Les calculs d'itinéraire (y compris le recalcul) renvoient l'itinéraire qui prend le moins de temps à parcourir comme meilleur itinéraire par défaut. Toutefois, vous pouvez modifier la stratégie de routage afin que l'itinéraire le plus court parmi les alternatives soit renvoyé.
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. L'itinéraire le plus court n'est pas forcément le plus absolu, car il peut s'agir d'une mauvaise alternative. Par exemple, si l'itinéraire le plus court est de 10 km et prend 50 minutes, et qu'un autre itinéraire est de 15 km, mais ne prend que 20 minutes, le deuxième choix est optimal, car passer 30 minutes pour réduire cinq kilomètres n'est pas un bon compromis.
Une fois que vous avez défini la stratégie de routage pour un trajet, elle ne change pas tant que le trajet n'est pas terminé. Pour modifier la stratégie de routage d'un trajet existant, vous devez effacer les destinations et les redéfinir avec la nouvelle stratégie de routage.
Obtenir des informations sur un itinéraire
Pour déterminer la stratégie de routage optimale pour un point de repère donné, appelez getRouteInfoForDestination()
afin d'obtenir des informations sur l'itinéraire par défaut le plus adapté et sur l'itinéraire le plus court. Les détails incluent la durée et la distance jusqu'à un point de cheminement de destination.
Ces informations proviennent de GMSNavigationRouteInfo
dans le rappel.
Exemple
L'exemple de code suivant montre comment obtenir les détails de l'itinéraire pour chacune des deux stratégies de routage.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
Définir la stratégie de routage
Vous pouvez configurer la stratégie de routage à l'aide de GMSNavigationRoutingOptions
et en définissant routingStrategy
lors de l'appel de setDestinations()
.
routingStrategy
prend l'une des valeurs d'énumération suivantes :
Valeur d'énumération | Description |
---|---|
GMSNavigationRoutingStrategyDefaultBest | Classe les itinéraires selon le modèle de coût par défaut du SDK Navigation. Il s'agit de la stratégie de routage par défaut. |
GMSNavigationRoutingStrategyShorter | Classe les itinéraires par distance. La route la mieux classée est la plus courte parmi celles renvoyées. |
Exemple
L'exemple de code suivant montre comment définir la stratégie de routage pour l'itinéraire le plus court.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
Itinéraires incluant des ferries
Par défaut, le SDK Navigation pour iOS 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 routage pour exposer le trajet aux segments de ferry en définissant avoidsFerries
sur false
.
Exemple
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format de l'accroche d'itinéraire
Avec la stratégie de routage de l'itinéraire le plus court, les encarts le long de l'itinéraire affichent des informations sur la distance. Vous pouvez toutefois utiliser les accroches d'ETA.
Configurer le format de l'info-bulle de l'itinéraire
Vous pouvez modifier le format de l'info-bulle de l'itinéraire en définissant routeCalloutFormat
dans GMSMapView
. routeCalloutFormat
prend l'une des valeurs d'énumération suivantes :
Valeur d'énumération | Description |
---|---|
GMSNavigationRouteCalloutFormatDefault | Affiche le temps restant lorsque vous utilisez la stratégie de routage de la meilleure route par défaut. Affiche la distance restante lorsque vous utilisez la stratégie de routage du chemin le plus court. |
GMSNavigationRouteCalloutFormatTime | Affiche le temps restant. |
GMSNavigationRouteCalloutFormatDistance | D : affiche la distance restante. |
Exemple
L'exemple de code suivant montre comment configurer le format de l'encart d'itinéraire.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;