Jetons d'itinéraire

Lorsque vous déterminez le meilleur itinéraire pour un trajet en partage de course, l'itinéraire le plus rapide n'est pas toujours la meilleure option. Vous voudrez peut-être personnaliser votre itinéraire. L'API Routes Preferred vous permet de personnaliser une route en spécifiant un objectif de route à 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 route. Vous pouvez ensuite transmettre le jeton au SDK Navigation pour Android et récupérer l'itinéraire personnalisé.

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

Récupérer une route personnalisée

Vous pouvez récupérer une route personnalisée 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. Il utilise le lieu de départ correspondant, ainsi que les conditions de circulation et de circulation.

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é, basé sur 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 trouvé entre la position de l'utilisateur et la destination donnée, la fonction 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);