Ajuster les préférences de routage

Les calculs d'itinéraires (y compris le calcul d'un nouvel itinéraire) renvoient l'itinéraire qui prend le moins de temps à parcourir en tant que meilleur itinéraire par défaut. Vous pouvez toutefois modifier la stratégie de calcul d'itinéraire 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 le trajet le plus court mesure 10 km et prend 50 minutes, et qu'un autre trajet fait 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 et 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 de calcul d'itinéraire est optimale pour un point de cheminement donné, appelez getRouteInfoForDestination() 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 GMSNavigationRouteInfo dans le rappel.

Exemple

L'exemple de code suivant montre comment obtenir les détails du parcours pour chacune des deux stratégies de calcul d'itinéraire.

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 définir routingStrategy lorsque vous appelez setDestinations().

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

Valeur d'énumérationDescription
GMSNavigationRoutingStrategyDefaultBest 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.
GMSNavigationRoutingStrategyShorter 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 stratégie de calcul du trajet 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 d'itinéraire 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 la zone de texte de l'itinéraire

Avec la stratégie de calcul d'itinéraire le plus court, les accroches le long de l'itinéraire affichent des informations sur la distance. Vous pouvez toutefois utiliser les accroches d'heure d'arrivée à la place.

Configurer le format du callout de route

Vous pouvez modifier le format de la accroche de l'itinéraire en définissant routeCalloutFormat dans GMSMapView. routeCalloutFormat prend l'une des valeurs d'énumération suivantes:

Valeur d'énumérationDescription
GMSNavigationRouteCalloutFormatDefault Indique le temps restant lorsque vous utilisez la stratégie d'itinéraire le plus court par défaut. Indique la distance restante lorsque vous utilisez la stratégie de calcul du trajet le plus court
GMSNavigationRouteCalloutFormatTime Indique le temps restant.
GMSNavigationRouteCalloutFormatDistance Indique la distance restante.

Exemple

L'exemple de code suivant montre comment configurer le format de la balise de parcours.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;