Les calculs d'itinéraire (y compris les changements d'itinéraire) renvoient l'itinéraire qui prend le le temps de navigation le plus court, considéré comme le meilleur itinéraire par défaut. Toutefois, vous pouvez modifier la stratégie de routage pour que la route la plus courte des alternatives s'affiche à la place.
Le terme plus court désigne l'itinéraire le plus court parmi les meilleurs. 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 ne s'agit pas toujours d'une bonne alternative. Par exemple, si l'itinéraire le plus court est de 10 km. La navigation dure 50 minutes un autre itinéraire fait 15 km, mais la navigation ne prend que 20 minutes. est optimale, car passer 30 minutes à réduire cinq km n'est pas un bon compromis.
Une fois que vous avez défini la stratégie d'itinéraire d'un trajet, celle-ci ne change terminé. Pour modifier la stratégie d'itinéraire d'un trajet existant, vous devez effacer les destinations et les réinitialiser à nouveau avec la nouvelle stratégie de routage.
Obtenir des informations sur l'itinéraire
Pour déterminer quelle stratégie d'itinéraire est la plus adaptée à un point de cheminement donné,
appelez getRouteInfoForDestination()
pour obtenir des détails sur les routes pour
le meilleur et le plus court. Les détails incluent la durée et le
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 des détails sur l'itinéraire pour chacun 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
peut avoir l'une des valeurs d'énumération suivantes:
Valeur d'énumération | Description |
---|---|
GMSNavigationRoutingStrategyDefaultBest | Classe les itinéraires en fonction du modèle de coût par défaut du SDK Navigation. Il s'agit de la de routage par défaut. |
GMSNavigationRoutingStrategyShorter | Classe les itinéraires en fonction de la distance. L'itinéraire le plus élevé est le plus court celles renvoyées. |
Exemple
L'exemple de code suivant montre comment définir un itinéraire plus court stratégie.
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 avec 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 modifier cet itinéraire
que vous préférez que le trajet soit associé aux segments de ferry en définissant avoidsFerries
sur
false
Exemple
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Le format des accroches de l'itinéraire
Sous la stratégie d'itinéraire le plus court, des accroches s'affichent le long de l'itinéraire. les détails de distance. Toutefois, vous pouvez utiliser les appels d'annonce textuelle agrandie à la place.
Configurer le format d'accroche de route
Vous pouvez modifier le format d'accroche de l'itinéraire en définissant routeCalloutFormat
dans
GMSMapView
routeCalloutFormat
utilise l'une des énumérations suivantes :
:
Valeur d'énumération | Description |
---|---|
GMSNavigationRouteCalloutFormatDefault | Affiche le temps restant en cas d'utilisation du meilleur itinéraire par défaut stratégie. Affiche la distance restante sur l'itinéraire le plus court stratégie |
GMSNavigationRouteCalloutFormatTime | Affiche le temps restant. |
GMSNavigationRouteCalloutFormatDistance | DAffiche la distance restante. |
Exemple
L'exemple de code suivant montre comment configurer l'accroche d'itinéraire. .
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;