Planifier un itinéraire

Vous pouvez parfois planifier le parcours que votre application propose aux utilisateurs. Avec un à partir de l'API Routes, L'API Routes Preferred, ou l'API Route Optimization, vous aider à spécifier deux éléments pour votre itinéraire planifié:

  • Une polyligne pour l'itinéraire

  • Vos objectifs d'itinéraire

Voici quelques exemples d'objectifs de routage que vous pouvez avoir:

  • Réduire le délai de livraison: une entreprise livrant des repas peut souhaiter minimiser le temps qu’il faut pour livrer la nourriture.

  • Réduisez les temps de trajet ou la consommation de carburant: une entreprise de logistique peut veulent améliorer l'efficacité de leurs conducteurs et réduire leurs coûts de carburant.

  • Minimiser le temps de trajet : une opération de distribution de service 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 renforcer la sécurité: une entreprise de covoiturage peut envisager de trouver 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 la section Demander un jeton de routage dans API Routes et polylignes de transition et routes Jetons dans API Route Optimization.

Pourquoi utiliser un jeton de parcours pour les objectifs de parcours

Avec un jeton de route provenant de l'API Routes, l'API Routes Preferred, ou API Route Optimization, mieux contrôler la route fournie:

  • Planifiez à l'avance un itinéraire que le SDK Navigation pourra utiliser lorsque possible.

  • Choisissez le meilleur itinéraire à utiliser par le SDK Navigation. Si vous demander 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 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 d'itinéraire attendu et réel.

  • Spécifiez des objectifs d'itinéraire plus avancés, tels que l'itinéraire écologique ou 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. Toi peut transmettre un jeton de routage 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 de route:

  1. 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.

  2. Vous transmettez le jeton d'itinéraire au SDK Navigation.

  3. 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 le meilleur itinéraire correspondant.

  4. Pendant le trajet, 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 continuellement 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 l'itinéraire planifié.

Pourquoi un itinéraire planifié peut-il 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 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 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 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

  1. Demandez un jeton de route à 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 plus des informations sur la demande d'un jeton de routage dans l'API Routes Preferred, consultez la section Planifier un route.

    • API Route Optimization : optimizeTours ou batchOptimizeTours. Pour en savoir plus sur la demande d'itinéraire dans l'API Route Optimization, consultez la section Polylignes de transition et routes Jetons :

  2. Configurez votre requête API Routes ou API Routes Preferred pour répondre aux exigences d'utilisation d'un jeton de route :

    • Définissez travel_mode sur DRIVING ou TWO_WHEELER.
    • Définissez routing_preference sur TRAFFIC_AWARE ou TRAFFIC_AWARE_OPTIMAL.
    • NE PAS utiliser Via points de cheminement

Étape 2 : Transmettre le jeton d'itinéraire au SDK Navigation

  1. 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",
    }
    
  2. Transmettez le jeton d'itinéraire au SDK Navigation à l'aide de la 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:

    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. Si il trouve un itinéraire entre la position du véhicule et la destination donnée, la fonction 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 et le jeton de routage.

    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 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.

  • 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
  • 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.