Jetons d'itinéraire

Lorsque vous déterminez le meilleur itinéraire pour un trajet en covoiturage, l'itinéraire le plus rapide n'est pas toujours la meilleure option. Vous pouvez personnaliser votre itinéraire. L'API Routes Preferred vous permet de personnaliser une route en spécifiant un objectif de routage à l'aide de la méthode ComputeCustomRoutes.

Lorsque vous créez une route personnalisée, l'API Routes Preferred génère un jeton de routage. Vous pouvez ensuite transmettre le jeton au SDK Navigation pour Android et récupérer l'itinéraire personnalisé.

Pour plus d'informations sur la création d'une route personnalisée, consultez la page Créer des routes personnalisées.

Récupérer une route personnalisée

Vous pouvez récupérer un itinéraire personnalisé en transmettant un jeton de route au SDK Navigation pour Android à l'aide de la méthode Navigator.setDestinations.

setDestinations(List<Waypoint> destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);

La route personnalisée remplace toutes les destinations précédemment définies. Elle utilise le lieu de départ du conducteur, ainsi que les conditions de circulation et les conditions de circulation correspondantes.

Navigator.setDestinations utilise les paramètres suivants:

ParamètresDescription
destinations Nouvelle liste de destination à définir.
customRoutesOptions Options qui seront utilisées pour récupérer un itinéraire précalculé, en fonction d'un jeton renvoyé par l'API Routes Preferred.
displayOptions Options qui seront utilisées pour afficher l'itinéraire.

La méthode Navigator.setDestinations renvoie l'état de la requête. Si un itinéraire est détecté entre la position de l'utilisateur et la destination donnée, il renvoie RouteStatus.OK.

Exemple

L'exemple de code suivant montre comment récupérer une route personnalisée.

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 RoutesPreferred API";

CustomRoutesOptions customRoutesOptions =
   CustomRoutesOptions.builder()
      .setRouteToken(routeToken)
      .setTravelMode(CustomRoutesOptions.TravelMode.TWO_WHEELER)
      .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);