Il peut arriver que vous souhaitiez planifier l'itinéraire que votre application fournit aux utilisateurs. Avec un de l'API Routes (ou de l'API Routes Preferred) peut vous aider à spécifier deux choses pour votre itinéraire planifié:
Polyligne pour l'itinéraire
Vos objectifs d'itinéraire
Voici quelques exemples d'objectifs de routage que vous pouvez avoir:
Réduisez les délais de livraison: une entreprise livrant des repas peut souhaiter réduire au minimum le temps qu’il faut pour livrer la nourriture.
Réduire les temps de trajet ou la consommation de carburant: une entreprise de logistique peut souhaiter améliorer l'efficacité des conducteurs et réduire leurs coûts de carburant.
Réduire le délai jusqu'à destination: une opération de distribution de services peut souhaiter réduire le temps nécessaire pour acheminer les opérateurs vers une requête de tâche.
Réduire les coûts et renforcer la sécurité: une entreprise de covoiturage peut rechercher un itinéraire moins cher pour les usagers et évitant certaines zones pour des raisons de sécurité raisons.
Pour en savoir plus sur la planification d'un itinéraire à l'aide d'un jeton de route, consultez Demandez un jeton de route.
Pourquoi utiliser un jeton de route pour les objectifs de route ?
Avec un jeton de route provenant de l'API Routes ou Routes Preferred, vous disposez sur la route fournie:
Planifier un itinéraire à utiliser par le SDK Navigation dans la mesure du possible.
Choisissez le meilleur itinéraire pour le SDK Navigation. Si vous demandez des jetons de routage 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 pour l'itinéraire que vous souhaitez utiliser SDK Navigation.
Estimer le prix à l'avance, y compris l'estimation de l'heure d'arrivée prévue et de la distance. Bien que le coût et le temps réels puissent varier, cette estimation réduit l’écart entre le coût d’itinéraire attendu et réel.
Spécifiez des objectifs d'itinéraire plus avancés, comme l'itinéraire éco ou le plus court via un routage réseau.
Fonctionnement des jetons de routage de l'API Routes
Vous pouvez utiliser l'API Routes ou l'API Routes Preferred pour planifier un itinéraire à l'aide des objectifs d'itinéraire. L'API Routes renvoie un que vous pouvez transmettre au SDK Navigation pour indiquer à votre véhicule.
Voici ce qui se passe lorsque vous demandez et utilisez un jeton de route API Routes:
L'API Routes renvoie un jeton de route chiffré incluant la route une polyligne et des objectifs d'itinéraire.
Vous transmettez le jeton d'itinéraire au SDK Navigation.
Le SDK Navigation récupère l'itinéraire, ou si l'itinéraire n'est pas disponible en fonction de l'évolution des conditions, il récupère la meilleure correspondance via un routage réseau.
Pendant le trajet, si le trafic ou d'autres conditions de circulation changent, ou si lorsqu'un véhicule s'écarte de l'itinéraire prévu, les itinéraires modifiés tente de faire correspondre le meilleur itinéraire en fonction des objectifs de route dans le jeton.
Ce processus maximise la proximité entre l'itinéraire prévu et l'itinéraire prévu.
Pourquoi un itinéraire planifié peut ne pas être suivi exactement
Considérez votre itinéraire et vos objectifs d'itinéraire comme des directives à suivre : ne sont pas normatives. Vous constaterez peut-être une différence entre votre itinéraire planifié et l'itinéraire fourni par la navigation guidée en raison des différences de circulation les conditions, le point de départ ou d'autres paramètres qui ont changé depuis que vous créé la route planifiée. Cette différence peut entraîner une incohérence vos objectifs de distance et d'heure d'arrivée prévue, prévus et réels, entre autres qualités.
Planifier une route à l'aide d'un jeton de route
Vous pouvez planifier un itinéraire en créant un jeton de route, puis en le transmettant à le SDK Navigation, comme décrit dans les étapes suivantes:
Étape 1: Créez un jeton de route à l'aide de l'API Routes ou Routes Preferred
Demandez un jeton de route à l'aide de l'une des méthodes suivantes:
API Routes:
computeRoutes
. Pour en savoir plus sur demandant un jeton de route dans l'API Routes, consultez Calculer un itinéraire et Demandez un jeton de routage.API Routes Preferred:
computeCustomRoutes
. Pour en savoir plus sur demandant un jeton de routage dans l'API Routes Preferred, consultez Planifiez un itinéraire.
Configurez votre demande d'itinéraire pour répondre aux exigences liées à l'utilisation d'un itinéraire. jeton:
- Définissez
travel_mode
surDRIVING
- Définissez
routing_preference
surTRAFFIC_AWARE
ouTRAFFIC_AWARE_OPTIMAL
- NE PAS utiliser les points de cheminement Via
- Définissez
Étape 2: Transmettre le jeton d'itinéraire au SDK Navigation
Stocker le jeton d'itinéraire: 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 de route renvoyé:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
Transmettez le jeton d'itinéraire au SDK Navigation à l'aide de la
mapView.navigator setDestinations
, spécifiant la même destination les points de cheminement que vous avez utilisés lors de la création du jeton d'itinéraire:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
La méthode Navigator.setDestinations
renvoie l'état de la requête.
Si un itinéraire est trouvé entre la position
de l'utilisateur et la destination donnée,
la fonction renvoie RouteStatus.OK
.
Pour en savoir plus sur cette méthode, consultez Navigator.setDestinations
.
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:coordinate 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){...}];
Interactions des jetons d'itinéraire et du SDK Navigation
Voici comment l'itinéraire généré par le SDK Navigation et l'itinéraire prévu dans le jeton de route interagissent:
Remplace toutes les destinations définies précédemment.
Utilise le lieu de départ du véhicule.
Elle s'ajuste en fonction des conditions de circulation et du trafic. Voir Pourquoi un itinéraire planifié peut ne pas être suivi exactement.
Ignore les options de routage suivantes comme inutiles:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Suivis:
Options liées aux points de cheminement, telles que la préférence de sens de circulation
Objectifs de routage. Si le SDK Navigation doit ajuste l'itinéraire renvoyé, il utilise les objectifs d'itinéraire que vous avez spécifiés demandant le jeton de route. C'est pourquoi vous devez utiliser la même les options liées aux points de cheminement que vous avez spécifiées dans l'API Routes.