Ajuster les préférences de routage

Les calculs d'itinéraire (y compris le réacheminement) renvoient l'itinéraire qui prend le moins de temps en tant que 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 désigne l'itinéraire le plus court parmi ceux optimaux basés sur 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, si l'itinéraire le plus court est de 10 km et que sa navigation prend 50 minutes et qu'un autre itinéraire ne prend que 20 minutes, le deuxième choix est optimal, car passer 30 minutes pour parcourir 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 d'itinéraire d'un trajet existant, vous devez effacer les destinations et les réinitialiser à nouveau avec la nouvelle stratégie d'itinéraire.

Obtenir les détails de l'itinéraire

Pour déterminer la stratégie d'itinéraire la plus adaptée à un point de cheminement donné, appelez getRouteInfoForDestination() afin d'obtenir les détails du meilleur itinéraire par défaut et de l'itinéraire le plus court. Les détails incluent la durée et la distance jusqu'au point de cheminement de destination.

Ces détails 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 en utilisant GMSNavigationRoutingOptions et en définissant routingStrategy lorsque vous appelez setDestinations().

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

Valeur d'énumérationDescription
GMSNavigationRoutingStrategyDefaultBest 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.
GMSNavigationRoutingStrategyShorter 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.

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 les ferries. Si vous préférez inclure des options de ferry dans vos itinéraires, vous pouvez modifier cette préférence d'itinéraire afin d'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 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 de route en définissant routeCalloutFormat dans GMSMapView. routeCalloutFormat utilise l'une des valeurs d'énumération suivantes:

Valeur d'énumérationDescription
GMSNavigationRouteCalloutFormatDefault Affiche le temps restant lorsque vous utilisez la meilleure stratégie de routage d'itinéraires par défaut. Affiche la distance restante si vous utilisez la stratégie d'itinéraire le plus court
GMSNavigationRouteCalloutFormatTime Affiche le temps restant.
GMSNavigationRouteCalloutFormatDistance DDisplays distance restante

Exemple

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;