Routentokens

Wenn Sie die beste Route für eine Fahrt mit einem Mitfahrdienst festlegen, ist die schnellste Route möglicherweise nicht immer die beste. Sie können Ihre Route anpassen. Mit der Routes Preferred API können Sie eine Route anpassen. Dazu geben Sie mit der Methode ComputeCustomRoutes ein Routenziel an.

Wenn Sie eine benutzerdefinierte Route erstellen, generiert die Routes Preferred API ein Routentoken. Sie können das Token dann an das Navigation SDK for Android übergeben und die benutzerdefinierte Route abrufen.

Weitere Informationen zum Erstellen einer benutzerdefinierten Route finden Sie unter Benutzerdefinierte Routen erstellen.

Benutzerdefinierte Route abrufen

Sie können eine benutzerdefinierte Route abrufen, indem Sie mit der Methode Navigator.setDestinations ein Routentoken an das Navigation SDK for Android übergeben.

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

Die benutzerdefinierte Route überschreibt alle zuvor festgelegten Ziele. Dabei werden der entsprechende Startort des Fahrers sowie die Straßen- und Verkehrslage verwendet.

Navigator.setDestinations verwendet die folgenden Parameter:

ParameterBeschreibung
Ziele Die neue festzulegende Zielliste.
customRoutesOptions Die Optionen, die zum Abrufen einer vorab berechneten Route verwendet werden, basierend auf einem Token, das von der Routes Preferred API zurückgegeben wird.
displayOptions Die Optionen, die zur Anzeige der Route verwendet werden.

Die Methode Navigator.setDestinations gibt den Status der Anfrage zurück. Wird eine Route vom Standort des Nutzers zum angegebenen Ziel gefunden, wird RouteStatus.OK zurückgegeben.

Beispiel

Im folgenden Codebeispiel wird gezeigt, wie eine benutzerdefinierte Route abgerufen wird.

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);