Vous pouvez parfois planifier l'itinéraire que votre application fournit aux utilisateurs. L'utilisation d'un jeton d'itinéraire de l'API Routes, de l'API Routes Preferred ou de l'API Route Optimization peut vous aider à spécifier deux éléments pour votre itinéraire planifié:
Une polyligne pour l'itinéraire
Vos objectifs de parcours
Voici quelques exemples d'objectifs de routage que vous pouvez avoir:
Réduire le délai de livraison: une entreprise de livraison de repas peut vouloir réduire le délai de livraison.
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.
Minimiser le temps d'accès à la destination: une opération de distribution de services peut vouloir réduire le temps nécessaire pour que les opérateurs accèdent à une demande de travail.
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 d'itinéraire, consultez Demander un jeton d'itinéraire dans l'API Routes et Polylignes de transition et jetons d'itinéraire dans l'API Route Optimization.
Pourquoi utiliser un jeton de parcours pour les objectifs de parcours
Avec un jeton d'itinéraire 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 puisse l'utiliser dans la mesure du possible.
Choisissez le meilleur itinéraire à utiliser par le SDK Navigation. Si vous demandez des jetons d'itinéraire lorsque vous générez des itinéraires dans l'API Routes, vous recevez un jeton d'itinéraire pour chaque itinéraire généré. Vous pouvez ensuite choisir le jeton pour le parcours que vous souhaitez utiliser lorsque vous le transmettez au SDK Navigation.
Estimer le prix à l'avance, y compris les estimations de l'heure d'arrivée 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 prévu et le coût réel de l'itinéraire.
Spécifiez des objectifs d'itinéraire plus avancés, tels que le calcul d'itinéraires éco-responsables ou le calcul du plus court itinéraire.
Fonctionnement des jetons de parcours
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 de navigation pour guider le calcul du trajet de votre véhicule.
Voici ce qui se passe lorsque vous demandez et utilisez un jeton de parcours:
L'API Routes, l'API Routes Preferred ou l'API Route Optimization renvoie un jeton d'itinéraire chiffré qui inclut la polyligne de l'itinéraire et ses objectifs.
Vous transmettez le jeton de parcours au SDK Navigation.
Le SDK Navigation récupère l'itinéraire ou, si celui-ci n'est pas disponible en raison de conditions changeantes, il récupère l'itinéraire le mieux adapté.
Lorsque vous suivez l'itinéraire, si le trafic ou d'autres conditions routières changent, ou si un véhicule s'écarte de l'itinéraire planifié, les itinéraires modifiés tentent en permanence de correspondre au meilleur itinéraire en fonction des objectifs de l'itinéraire dans le jeton.
Ce processus maximise la proximité de l'itinéraire réel avec votre itinéraire planifié.
Pourquoi un itinéraire planifié peut-il ne pas être suivi exactement ?
Considérez votre itinéraire planifié et ses objectifs comme des consignes à suivre: ils ne sont pas contraignants. Vous pouvez constater une différence entre votre itinéraire planifié et celui fourni par la navigation guidée en raison de différences dans les conditions de circulation, le point de départ ou d'autres paramètres qui ont changé depuis la création de l'itinéraire planifié. Cette différence peut entraîner un décalage entre vos objectifs planifiés et réels en termes de distance et d'heure d'arrivée estimée, entre autres caractéristiques importantes du trajet.
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 d'itinéraire à l'aide de l'API Routes, de l'API Routes Preferred ou de l'API Route Optimization
Demandez un jeton de parcours à l'aide de l'une des méthodes suivantes:
API Routes:
computeRoutes
. Pour en savoir plus sur la demande d'un jeton de parcours dans l'API Routes, consultez Calculer un parcours et Demander un jeton de parcours.API Routes préférée:
computeCustomRoutes
. Pour en savoir plus sur la demande d'un jeton de parcours dans l'API Routes Preferred, consultez Planifier un parcours.API Route Optimization:
optimizeTours
oubatchOptimizeTours
. Pour en savoir plus sur la demande d'un jeton de parcours dans l'API Route Optimization, consultez Polylignes de transition et jetons de parcours.
Configurez votre requête API Routes ou API Routes Preferred pour répondre aux exigences d'utilisation d'un jeton d'itinéraire:
- Définissez
travel_mode
surDRIVING
ouTWO_WHEELER
. - Définissez
routing_preference
surTRAFFIC_AWARE
ouTRAFFIC_AWARE_OPTIMAL
. - N'utilisez PAS de points de cheminement
Via
- Définissez
Étape 2: Transmettre le jeton de parcours au SDK Navigation
Stocker le jeton de parcours: dans le SDK Navigation, configurez une chaîne pour stocker le jeton de parcours. Exemple :
String routeToken = "route token returned by Routes API";
Exemple de jeton de route renvoyé:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
Transmettez le jeton de parcours au SDK Navigation à l'aide de la méthode
Navigator.setDestinations
, en spécifiant les mêmes points de repère de destination que ceux que vous avez utilisés lors de la création du jeton de parcours:setDestinations(List
destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions); Exemple :
CustomRoutesOptions customRoutesOptions = CustomRoutesOptions.builder() .setRouteToken(routeToken) .setTravelMode(TravelMode.DRIVING) .build();
La méthode Navigator.setDestinations
renvoie l'état de la requête. S'il trouve un itinéraire entre l'emplacement du véhicule et la destination donnée, il renvoie RouteStatus.OK
.
Pour en savoir plus sur cette méthode, consultez Navigator.setDestinations
.
Exemple
L'exemple de code suivant montre comment spécifier un itinéraire planifié à l'aide d'un jeton d'itinéraire.
ArrayList <Waypoint> destinations = Lists.newArrayList();
Waypoint waypoint1 =
Waypoint.builder()
.setLatLng(10, 20)
.setTitle("title")
.setVehicleStopover(true)
.build();
destinations.add(waypoint1);
Waypoint waypoint2 =
Waypoint.builder()
.setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(waypoint2);
String routeToken = "route token returned by Routes API";
CustomRoutesOptions customRoutesOptions =
CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build();
// Existing flow to get a Navigator.
NavigationApi.getNavigator(...);
// Existing flow for requesting routes.
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions);
// Or with display options.
DisplayOptions displayOptions = new DisplayOptions();
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions, displayOptions);
Interaction entre les jetons de parcours et le SDK Navigation
Voici comment le parcours généré par le SDK Navigation et le parcours planifié dans le jeton de parcours interagissent:
Remplace toutes les destinations précédemment définies.
Utilise le lieu de départ du véhicule.
S'ajuste en fonction de l'état de la route et de la circulation. Consultez Pourquoi un itinéraire planifié peut ne pas être suivi exactement.
Ignore les options de routage suivantes, car elles ne sont pas nécessaires:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Abonnés:
Options liées aux repères, comme la préférence de côté de la route.
Objectifs de parcours Si le SDK Navigation doit ajuster l'itinéraire renvoyé, il utilise les objectifs d'itinéraire que vous avez spécifiés lors de la demande du jeton d'itinéraire. Pour cette raison, vous devez utiliser les mêmes options liées aux points de cheminement que celles que vous avez spécifiées dans l'API Routes.