Manchmal möchten Sie die Route planen, die Ihre App Nutzern anbietet. Mit einem Routentoken aus der Routes API, der Routes Preferred API oder der Route Optimization API können Sie zwei Dinge für Ihre geplante Route angeben:
Eine Polylinie für die Route
Ihre Zielvorhaben für die Route
Hier einige Beispiele für mögliche Zielvorhaben für die Weiterleitung:
Lieferzeit minimieren: Ein Unternehmen, das Lebensmittel liefert, möchte die Lieferzeit möglicherweise minimieren.
Fahrzeit oder Kraftstoffverbrauch minimieren: Ein Logistikunternehmen möchte die Effizienz seiner Fahrer verbessern und die Kraftstoffkosten senken.
Die Zeit bis zum Ziel minimieren: Ein Einsatzleiter möchte möglicherweise die Zeit minimieren, die es dauert, bis die Einsatzkräfte an einem Einsatzort sind.
Kosten senken und Sicherheit verbessern: Ein Unternehmen für Fahrgemeinschaften möchte möglicherweise eine Route finden, die für Fahrgäste weniger kostet und bestimmte Gebiete aus Sicherheitsgründen umgeht.
Weitere Informationen zum Planen einer Route mit einem Routen-Token finden Sie unter Routen-Token anfordern in der Routes API und unter Übergangspolylinien und Routen-Tokens in der Route Optimization API.
Vorteile eines Routentokens für Zielvorhaben für Routen
Mit einem Routentoken aus der Routes API, der Routes Preferred API oder der Route Optimization API haben Sie mehr Kontrolle über die bereitgestellte Route:
Planen Sie eine Route im Voraus, die das Navigation SDK nach Möglichkeit verwenden soll.
Wählen Sie die beste Route für das Navigation SDK aus. Wenn Sie beim Generieren von Routen in der Routes API Routentokens anfordern, erhalten Sie für jede generierte Route ein Routentoken. Sie können dann das Token für die Route auswählen, die Sie verwenden möchten, wenn Sie sie an das Navigation SDK übergeben.
Schätzen Sie den Preis im Voraus ab, einschließlich Schätzungen für die geschätzte Ankunftszeit und die Entfernung. Die tatsächlichen Kosten und die tatsächliche Zeit können variieren. Diese Schätzung verringert jedoch die Differenz zwischen den erwarteten und den tatsächlichen Routenkosten.
Sie können erweiterte Routenziele festlegen, z. B. eine umweltfreundliche Route oder die kürzeste Route.
Funktionsweise von Routentokens
Sie können die Routes API, die Routes Preferred API oder die Route Optimization API verwenden, um eine Route mithilfe von Routenzielen zu planen. Sie können ein von einer dieser APIs zurückgegebenes Routen-Token an das Navigation SDK übergeben, um die Route Ihres Fahrzeugs zu steuern.
So funktioniert es:
Die Routes API, die Routes Preferred API oder die Route Optimization API gibt ein verschlüsseltes Routentoken zurück, das die Polylinie und die Zielvorhaben der Route enthält.
Sie übergeben das Routen-Token an das Navigation SDK.
Das Navigations-SDK ruft die Route ab. Wenn die Route aufgrund sich ändernder Bedingungen nicht verfügbar ist, wird die am besten passende Route abgerufen.
Wenn sich während der Fahrt die Verkehrslage oder andere Straßenverhältnisse ändern oder ein Fahrzeug von der geplanten Route abweicht, wird mit den geänderten Routen kontinuierlich versucht, die beste Route anhand der Routenziele im Token zu ermitteln.
So wird die Übereinstimmung der tatsächlichen Route mit der geplanten Route maximiert.
Warum eine geplante Route möglicherweise nicht genau eingehalten wird
Betrachten Sie Ihre geplante Route und die Zielvorhaben als Richtlinien, die Sie beachten sollten. Sie sind nicht verbindlich. Es kann sein, dass sich Ihre geplante Route von der Route unterscheidet, die die Navigationsfunktion vorschlägt. Das kann an den Straßenverhältnissen, dem Startpunkt oder anderen Parametern liegen, die sich seit der Erstellung der geplanten Route geändert haben. Dieser Unterschied kann zu Abweichungen zwischen Ihren geplanten und tatsächlichen Zielen für Entfernung und geschätzte Ankunftszeit sowie anderen wichtigen Fahrteigenschaften führen.
Route mit einem Routen-Token planen
Sie können eine Route planen, indem Sie ein Routen-Token erstellen und dann an das Navigations-SDK übergeben. Gehen Sie dazu so vor:
Schritt 1: Mit der Routes API, der Routes Preferred API oder der Route Optimization API ein Routen-Token erstellen
Fordere ein Routen-Token an:
Routes API:
computeRoutes
. Weitere Informationen zum Anfordern eines Routentokens in der Routes API finden Sie unter Route berechnen und Routentoken anfordern.Routes Preferred API:
computeCustomRoutes
. Weitere Informationen zum Anfordern eines Routentokens in der Routes Preferred API finden Sie unter Route planen.Route Optimization API:
optimizeTours
oderbatchOptimizeTours
. Weitere Informationen zum Anfordern eines Routentokens in der Routenoptimierungs-API finden Sie unter Übergangspolylinien und Routentokens.
Richten Sie Ihre Routes API- oder Routes Preferred API-Anfrage so ein, dass die Anforderungen für die Verwendung eines Routentokens erfüllt werden:
- Legen Sie
travel_mode
aufDRIVING
oderTWO_WHEELER
fest. - Legen Sie
routing_preference
aufTRAFFIC_AWARE
oderTRAFFIC_AWARE_OPTIMAL
fest. - Verwenden Sie KEINE
Via
-Wegpunkte.
- Legen Sie
Schritt 2: Routen-Token an das Navigation SDK übergeben
Routen-Token speichern: Richten Sie im Navigation SDK einen String zum Speichern des Routen-Tokens ein. Beispiel:
String routeToken = "route token returned by Routes API";
Beispiel für ein zurückgegebenes Routentoken:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
Übergeben Sie das Routen-Token mit der Methode
Navigator.setDestinations
an das Navigation SDK und geben Sie dabei dieselben Ziel-Wegpunkte an, die Sie beim Erstellen des Routen-Tokens verwendet haben:setDestinations(List
destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions); Beispiel:
CustomRoutesOptions customRoutesOptions = CustomRoutesOptions.builder() .setRouteToken(routeToken) .setTravelMode(TravelMode.DRIVING) .build();
Die Methode Navigator.setDestinations
gibt den Status der Anfrage zurück. Wenn eine Route vom Standort des Fahrzeugs zum angegebenen Ziel gefunden wird, wird RouteStatus.OK
zurückgegeben.
Weitere Informationen zu dieser Methode finden Sie unter Navigator.setDestinations
.
Beispiel
Im folgenden Codebeispiel wird gezeigt, wie eine geplante Route mit einem Routen-Token angegeben 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 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);
Interaktion von Routentokens und dem Navigation SDK
So interagieren die vom Navigation SDK generierte Route und die geplante Route im Routen-Token:
Hiermit werden alle zuvor festgelegten Ziele überschrieben.
Verwendet den Startort des Fahrzeugs.
Passt sich an Straßen- und Verkehrsbedingungen an. Weitere Informationen finden Sie unter Warum eine geplante Route möglicherweise nicht genau eingehalten wird.
Die folgenden routingbezogenen Optionen werden als nicht erforderlich ignoriert:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Mit „Folgen“ markiert:
Wegpunktbezogene Optionen, z. B. die Einstellung für die Straßenseite.
Ziele der Route Wenn das Navigations-SDK die zurückgegebene Route anpassen muss, werden die Routenziele verwendet, die Sie beim Anfordern des Routentokens angegeben haben. Verwenden Sie daher dieselben Optionen für Wegpunkte, die Sie in der Routes API angegeben haben.