Route planen

Von Zeit zu Zeit kann es von Vorteil sein, die Route zu planen, die Ihre App den Nutzern bereitstellt. 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:

  • Kürzere Lieferzeit: Ein Unternehmen, das Essen liefert, möchte vielleicht die Lieferzeit zu minimieren.

  • Fahrtzeit oder Kraftstoffverbrauch minimieren: Ein Logistikunternehmen könnte die Effizienz ihrer Fahrer steigern und ihre Kraftstoffkosten senken möchten.

  • 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. Anschließend können Sie die für die Route, die Sie verwenden möchten, wenn Sie es an die Navigation SDK

  • Schätzen Sie den Preis im Voraus, einschließlich der voraussichtlichen Ankunftszeit und Entfernung. Auch wenn die tatsächlichen Kosten und die Zeit variieren können, reduziert diese Schätzung die Differenz zwischen den erwarteten und den tatsächlichen Routenkosten.

  • Legen Sie erweiterte Routenziele fest, z. B. die Eco-Routing-Funktion oder die kürzester Route.

Funktionsweise von Routentokens

Sie können die Routes API, die Routes Preferred API oder Route Optimization API, um eine Route mit Routenzielen zu planen Ich kann ein von diesen APIs zurückgegebenes Routing-Token an die Navigation SDK steuern.

So funktioniert es:

  1. Die Routes API, die Routes Preferred API oder die Route Optimization API gibt ein verschlüsseltes Routentoken zurück, das die Polylinie der Route und die Routenziele enthält.

  2. Sie übergeben das Routen-Token an das Navigation SDK.

  3. Das Navigation SDK ruft die Route ab. Bedingungen verfügbar sind, wird die beste übereinstimmende Route abgerufen.

  4. 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 zwischen der tatsächlichen und der geplanten Route maximiert.

Warum einer geplanten Route möglicherweise nicht genau gefolgt wird

Betrachten Sie Ihre geplanten Routen und Routenziele als Richtlinien, die Sie befolgen sollten: sind nicht präskriptiv. Es kann sein, dass sich die geplante Route von der Route unterscheidet, die die Navigation 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 einer Diskrepanz zwischen Ihre geplanten und tatsächlichen Ziele für Entfernung und voraussichtliche Ankunftszeit sowie andere wichtige Reiseziele Qualitäten zu verstehen.

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: Routentoken mit der Routes API, Routes Preferred API oder Route Optimization API erstellen

  1. Fordere ein Routen-Token an:

    • Routes API: computeRoutes. Weitere Informationen zum Anfordern eines Routingtokens in der Routes API finden Sie unter Route berechnen und Route anfordern Token

    • Routes Preferred API: computeCustomRoutes. Weitere Informationen zum Anfordern eines Routentokens in der Routes Preferred API finden Sie unter Route planen.

    • Route Optimization API: optimizeTours oder batchOptimizeTours. Weitere Informationen zum Anfordern eines Routentokens in der Routenoptimierungs-API finden Sie unter Übergangspolylinien und Routentokens.

  2. Routes API oder Routes Preferred API einrichten request, um die Anforderungen für die Verwendung eines Routingtokens zu erfüllen:

    • Setzen Sie travel_mode auf DRIVING oder TWO_WHEELER.
    • Setzen Sie routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL.
    • Verwenden Sie KEINE Via-Wegpunkte.

Schritt 2: Routen-Token an das Navigation SDK übergeben

  1. Routentoken speichern: Richten Sie im Navigation SDK einen String ein. zum Speichern des Routentokens. Beispiel:

    String routeToken = "route token returned by Routes API";

    Beispiel für ein zurückgegebenes Routentoken:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Ü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 Navigator.setDestinations-Methode gibt den Status der Anfrage zurück. Wenn eine Route vom Fahrzeugstandort zum angegebenen Ziel findet, gibt sie RouteStatus.OK zurück.

Weitere Informationen zu dieser Methode finden Sie unter Navigator.setDestinations

Beispiel

Im folgenden Codebeispiel wird gezeigt, wie Sie eine geplante Route mithilfe eines Routen-Token.

    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 Navigation SDK

So interagieren die vom Navigation SDK generierte Route und die geplante Route im Routen-Token:

  • Überschreibt alle zuvor festgelegten Ziele.

  • Verwendet den Startort des Fahrzeugs.

  • Passt sich an die Straßen- und Verkehrslage 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:

    • Optionen für Wegpunkte, z. B. die Einstellung für Straßenseitenstraßen.

    • Routenziele: 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.