Vous pouvez parfois vouloir planifier l'itinéraire que votre application fournit aux utilisateurs. L'utilisation d'un jeton de route de l'API Routes, de l'API Routes Preferred ou de l'API Route Optimization peut vous aider à spécifier deux éléments pour l'itinéraire prévu :
Une polyligne pour l'itinéraire
Vos objectifs d'itinéraire
Voici quelques exemples d'objectifs de routage :
Réduire le délai de livraison : une entreprise de livraison de repas peut vouloir réduire le temps nécessaire pour livrer les repas.
Réduire le temps de trajet ou la consommation de carburant : une entreprise de logistique peut vouloir améliorer l'efficacité de ses conducteurs et réduire ses coûts de carburant.
Réduire le temps de trajet : un service de répartition peut vouloir réduire le temps nécessaire pour que les opérateurs se rendent sur le lieu d'une demande d'intervention.
Réduire les coûts et améliorer la sécurité : une entreprise de covoiturage peut vouloir trouver un itinéraire moins coûteux pour les passagers et éviter certaines zones pour des raisons de sécurité.
Pour en savoir plus sur la planification d'un itinéraire à l'aide d'un jeton de route, consultez Obtenir un jeton de route dans l'API Routes et Transition Polylines and Route Tokens (Polylignes de transition et jetons de route) dans l'API Route Optimization.
Pourquoi utiliser un jeton de route pour les objectifs de route ?
Avec un jeton de route de l'API Routes, de l'API Routes Preferred ou de l'API Route Optimization, vous avez plus de contrôle sur l'itinéraire fourni :
Planifiez un itinéraire à l'avance pour que le SDK Navigation l'utilise.
Choisissez le meilleur itinéraire à utiliser pour le SDK Navigation. Si vous demandez des jetons de route lors de la génération de routes dans l'API Routes, vous obtenez un jeton de route pour chaque route générée. Vous pouvez ensuite choisir le jeton de l'itinéraire que vous souhaitez utiliser lorsque vous le transmettez au SDK Navigation.
Estimez le prix à l'avance, y compris les estimations de l'heure d'arrivée prévue et de la distance. Bien que le coût et la durée réels puissent varier, cette estimation réduit l'écart entre le coût prévu et le coût réel de l'itinéraire.
Spécifiez des objectifs d'itinéraire plus avancés, tels que l'itinéraire écologique ou l'itinéraire le plus court.
Fonctionnement des jetons d'itinéraire
Vous pouvez utiliser l'API Routes, l'API Routes Preferred ou l'API Route Optimization pour planifier un itinéraire à l'aide d'objectifs d'itinéraire. Vous pouvez transmettre un jeton d'itinéraire renvoyé par l'une de ces API au SDK Navigation pour guider l'itinéraire de votre véhicule.
Voici ce qui se passe lorsque vous demandez et utilisez un jeton d'itinéraire :
L'API Routes, l'API Routes Preferred ou l'API Route Optimization renvoie un jeton de route chiffré qui inclut la polyligne de l'itinéraire et les objectifs de l'itinéraire.
Vous transmettez le jeton de route au SDK Navigation.
Le SDK Navigation démarre la navigation sur l'itinéraire prévu, même si un itinéraire plus rapide est disponible.
Pendant le trajet, si les conditions de circulation ou de route changent, ou si le véhicule quitte l'itinéraire prévu, le SDK Navigation calcule un nouvel itinéraire qui respecte les objectifs et les options de routage définis dans votre jeton d'itinéraire.
Ce processus permet de maximiser la proximité entre l'itinéraire réel et l'itinéraire planifié.
Pourquoi un itinéraire planifié peut ne pas être suivi exactement
La navigation commence sur l'itinéraire planifié, mais l'itinéraire réel peut en différer dans les situations suivantes :
- Le véhicule démarre loin du point de départ prévu.
- Les conditions de circulation ou de l'état de la route changent pendant le trajet.
- Le véhicule quitte l'itinéraire prévu.
Ces différences peuvent affecter la distance, l'heure d'arrivée prévue et d'autres caractéristiques importantes du trajet que vous avez planifié.
Planifier un itinéraire à l'aide d'un jeton d'itinéraire
Vous pouvez planifier un itinéraire en créant un jeton d'itinéraire, puis en le transmettant au SDK Navigation, comme décrit dans les étapes suivantes :
Étape 1 : Créez un jeton de route à l'aide de l'API Routes, de l'API Routes Preferred ou de l'API Route Optimization
Demandez un jeton d'itinéraire à l'aide de l'une des méthodes suivantes :
API Routes :
computeRoutes. Pour en savoir plus sur la demande d'un jeton de route dans l'API Routes, consultez Calculer un itinéraire et Obtenir un jeton de route.API Routes Preferred :
computeCustomRoutes. Pour en savoir plus sur la demande d'un jeton de route dans l'API Routes Preferred, consultez Planifier un itinéraire.API Route Optimization :
optimizeToursoubatchOptimizeTours. Pour en savoir plus sur la demande d'un jeton d'itinéraire dans l'API Route Optimization, consultez Polylignes de transition et jetons d'itinéraire.
Configurez votre requête API Routes ou API Routes Preferred pour répondre aux exigences d'utilisation d'un jeton de route :
- Définissez
travelModesurDRIVEouTWO_WHEELER. - Définissez
routingPreferencesurTRAFFIC_AWAREouTRAFFIC_AWARE_OPTIMAL. - N'utilisez pas de points de cheminement
Via.
- Définissez
Étape 2 : Transmettez le jeton d'itinéraire au SDK Navigation
Stocker le jeton de route : dans le SDK Navigation, configurez une chaîne pour stocker le jeton de route. Exemple :
let routeToken = "route token returned by Routes API"Exemple de jeton d'itinéraire renvoyé :
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }Transmettez le jeton de route au SDK Navigation à l'aide de
mapView.navigator.setDestinations. Spécifiez les mêmes points de cheminement de destination que ceux que vous avez utilisés lors de la création du jeton de route :mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})La méthode
setDestinationstransmet l'état de la requête à son rappel. S'il trouve un itinéraire entre la position de l'utilisateur et la destination donnée, l'état est.OK(GMSRouteStatusOK).
Scénarios avec plusieurs arrêts
Vous pouvez configurer jusqu'à 25 points de cheminement.
La méthode setDestinations n'est pas compatible avec les trajets à plusieurs arrêts. Utilisez continueToNextDestinationWithCompletion() pour faire passer le point de cheminement à l'étape suivante du trajet.
Exemple
Les exemples de code suivants montrent comment récupérer un itinéraire planifié.
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:location title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";
[mapView.navigator setDestinations:@[waypoint1, waypoint2]
routeToken:routeToken
callback:^(GMSRouteStatus routeStatus){...}];
Interaction entre les jetons de route et le SDK Navigation
Voici comment le SDK Navigation gère votre itinéraire planifié :
Remplace toutes les destinations précédemment définies.
Utilise la position de départ du véhicule.
S'adapte aux conditions de circulation et de la route. Consultez Pourquoi un itinéraire planifié peut ne pas être suivi exactement.
Utilise les options de routage définies dans votre jeton d'itinéraire au lieu des paramètres suivants dans votre application, y compris lorsqu'il calcule un nouvel itinéraire pendant le trajet :
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction- Le mode de transport défini dans votre application
suit ces paramètres lorsqu'il calcule ou ajuste l'itinéraire :
Objectifs d'itinéraire à partir de votre jeton d'itinéraire, tels que l'itinéraire écologique ou l'itinéraire le plus court. Si le SDK Navigation doit ajuster l'itinéraire, il utilise les objectifs d'itinéraire que vous avez spécifiés lorsque vous avez demandé le jeton d'itinéraire.
Options liées aux points de cheminement de votre application, telles que la préférence de côté de la route. Utilisez les mêmes options liées aux points de cheminement que celles que vous avez spécifiées lorsque vous avez demandé le jeton d'itinéraire.