Routentokens

Wenn Sie die beste Route für einen Mitfahrdienst ermitteln, ist die schnellste Route möglicherweise nicht immer die beste Option. Sie können Ihre Route anpassen. Mit der Routes Preferred API können Sie eine Route anpassen, indem Sie mit der Methode ComputeCustomRoutes ein Routenziel angeben.

Wenn Sie eine benutzerdefinierte Route erstellen, generiert die Routes Preferred API ein Routentoken. Anschließend können Sie das Token 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 berücksichtigt.

Für Navigator.setDestinations sind folgende Parameter erforderlich:

ParameterBeschreibung
Ziele Die neu 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 zum Anzeigen der Route verwendet werden.

Die Methode Navigator.setDestinations gibt den Status der Anfrage zurück. Wenn eine Route vom Standort des Nutzers zum angegebenen Ziel gefunden wird, 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);