Les calculs d'itinéraire (y compris le recalcul) renvoient le trajet prenant le moins de temps comme meilleur itinéraire par défaut. Toutefois, vous pouvez modifier la stratégie de calcul afin que le résultat soit le plus court parmi les alternatives.
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. Il ne s'agit pas nécessairement du plus court absolu, car cette alternative pourrait être mauvaise. 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 30 minutes supplémentaires pour gagner cinq kilomètres n'est pas un bon compromis.
Une fois que vous avez défini la stratégie de calcul pour un trajet, elle ne change pas tant que vous n'êtes pas arrivé à destination. Pour la modifier sur un trajet existant, vous devez effacer les destinations et les redéfinir avec la nouvelle stratégie de calcul d'itinéraire.
Obtenir des informations sur un itinéraire
Pour déterminer la stratégie de calcul d'itinéraire optimale pour un point de cheminement donné, appelez getRouteInfoForDestination() afin d'obtenir des informations aussi bien pour le meilleur itinéraire par défaut que pour le plus court. Ces informations incluent la durée et la distance jusqu'à un point de cheminement de destination.
Elles 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 calcul.
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 calcul d'itinéraire
Vous pouvez configurer cette stratégie à 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 calcul d'itinéraire 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 calcul d'itinéraire pour 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 calcul pour intégrer les segments de ferry au trajet en définissant avoidsFerries sur false.
Exemple
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format des données de l'itinéraire
Avec la stratégie de calcul d'itinéraire le plus court, les données accompagnant l'itinéraire affichent des informations sur la distance. Vous pouvez toutefois utiliser les données d'heure estimée d'arrivée.
Configurer le format des données de l'itinéraire
Vous pouvez modifier le format des données 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 calcul du meilleur itinéraire par défaut. Affiche la distance restante lorsque vous utilisez la stratégie de calcul de l'itinéraire le plus court. |
| GMSNavigationRouteCalloutFormatTime | Affiche le temps restant. |
| GMSNavigationRouteCalloutFormatDistance | Affiche la distance restante. |
Exemple
L'exemple de code suivant montre comment configurer le format des données de l'itinéraire.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;