Routen für große Fahrzeuge

Zielgruppe:Dieser Leitfaden richtet sich an Entwickler von mobilen Apps, die für die Entwicklung der detaillierten Routenführung für Fahrer von LKWs, Bussen oder anderen großen Nutzfahrzeugen verantwortlich sind.

Inhalt dieses Leitfadens:In diesem Leitfaden wird beschrieben, wie Sie eine lkw-spezifische Route, die von der Routes API oder der Route Optimization API generiert wurde, verwenden, um eine detaillierte Routenführung mit dem Navigation SDK for Android zu ermöglichen.

Lerninhalte

In diesem Lab lernen Sie, wie Sie die folgenden Aufgaben ausführen:

  • Verwenden Sie eine routeToken, um die Routenplanung im Backend mit der In-App-Navigation zu verbinden.
  • Konfigurieren Sie das Navigation SDK für die Verwendung einer vorgeplanten Lkw-Route.
  • Informationen dazu, wie lkw-spezifische Einschränkungen in der Navigations-Benutzeroberfläche für den Fahrer angezeigt werden

Vorbereitung

Prüfen Sie vorab, ob Sie die folgenden Anforderungen erfüllen:

1. Zugriff für Ihr Projekt anfordern

Die Routenplanung für große Fahrzeuge ist nur für eine begrenzte Anzahl von Kunden verfügbar. Wenn Sie Interesse haben und Zugriff für Ihr Google Cloud-Projekt anfordern möchten, füllen Sie das Kontaktformular aus. Ein Google-Mitarbeiter wird sich mit den nächsten Schritten bei Ihnen melden.

Sobald Google den Zugriff gewährt hat, muss Ihr Google Cloud-Projekt für die Routenplanung für große Fahrzeuge bereitgestellt werden.

Wenn Ihre Organisation separate Google Cloud-Projekte für die Backend-Routing-APIs und das mobile Navigation SDK verwendet, wenden Sie sich an Google, um die einzelnen Projekte bereitzustellen.

2. Generierung von Backend-Routen einrichten und Routen-Token abrufen

Bevor die Navigation auf dem Gerät gestartet werden kann, muss Ihr Backend-Server eine Lkw-Route generieren und mit einer der folgenden APIs ein routeToken abrufen:

In Ihrer Backend-Anfrage muss travelMode: TRUCK zusammen mit den physischen Attributen des Fahrzeugs (Höhe, Breite, Länge, Gewicht, Achsenzahl und Gefahrgut) angegeben werden. Die Routing API gibt in ihrer Antwort ein routeToken zurück, das Ihr Backend-Server an Ihre mobile App weiterleitet.

3. Mindestanforderungen an SDK und System erfüllen

Ihre App muss mindestens die Navigation SDK-Version 5.2.0 verwenden.

Außerdem muss Ihr Projekt die standardmäßigen Einrichtungsanforderungen für das Navigation SDK erfüllen.

Einschränkungen und Betriebsrichtlinien

Beachten Sie vorab die folgenden Einschränkungen und Betriebsrichtlinien:

  • Geografische Verfügbarkeit: Die Routenplanung für große Fahrzeuge ist in den 48 zusammenhängenden US-Bundesstaaten (allgemein verfügbar) und in Japan (experimentell) verfügbar. Sie ist nicht in Alaska, Hawaii oder US‑Territorien verfügbar.
  • Fahrerinformationen und Sicherheit: Fahrer dürfen sich nicht ausschließlich auf Routen verlassen, die vom Navigation SDK zurückgegeben werden, um sicher oder legal zu sein. Routen sind möglicherweise nicht für das Fahrzeug geeignet und können Fahrer unter Umständen Gefahren wie niedrigen Durchfahrten oder Straßen mit Gewichtsbeschränkungen aussetzen. Fahrer müssen immer aufmerksam sein und die aufgestellten Verkehrsschilder und lokalen Bestimmungen beachten.
  • Best-Effort-Routen: Wenn die Routing API keine Route finden kann, die den Fahrzeugbeschränkungen vollständig entspricht, wird eine „Best-Effort“-Route zurückgegeben, die möglicherweise trotzdem über eingeschränkte Abschnitte führt. Die Routes API legt beispielsweise das Flag routeRestrictionsPartiallyIgnored in ihrer Antwort fest. Wenn Sie diese Routen verwenden, werden im Navigation SDK Routenhinweise angezeigt, um auf die relevanten Einschränkungen hinzuweisen. Planen Sie Routen in diesen Fällen sorgfältig und verwenden Sie eine markierte Route nicht als alleinige Informationsquelle für die Planung oder Navigation.
  • Nicht unterstützte Funktionen: Die Routenplanung für große Fahrzeuge unterstützt die folgenden Funktionen nicht:
    • Lkw-Mautpreise
    • Geschwindigkeitsbegrenzungen für Lkw oder schwere Fahrzeuge
    • Routen für radioaktive Gefahrgüter
  • Nutzungslimits: Für Anfragen an das Navigation SDK gelten die Standardnutzungs- und Kontingentlimits. Weitere Informationen finden Sie unter Nutzung und Abrechnung.

Lkw-spezifische Benutzeroberfläche anzeigen (Routenhinweise)

Das Navigation SDK zeigt automatisch visuelle Warnungen, sogenannte Routenhinweise, auf der Karte an, um Fahrer auf bevorstehende Lkw-Beschränkungen aufmerksam zu machen. Hinweise werden für Einschränkungen angezeigt, die auf der geplanten Route auftreten, aber nicht auf anderen nahegelegenen Straßen.

Das Navigation SDK enthält Callouts für die folgenden Einschränkungen:

Einschränkung Symbol und Text der Erweiterung mit Zusatzinformationen Bedingungen für die Anzeige
Höhe Ein gelbes Symbol für Höhenbeschränkung
Gelb = Warnung, Ihr Fahrzeug hat fast die maximal zulässige Höhe erreicht
Ein rotes Symbol für Höhenbeschränkung
Rot = Ihr Fahrzeug ist höher als die maximal zulässige Höhe
Eine gelbe Hinweistafel wird angezeigt, wenn die Höhe des Fahrzeugs nahe an der Beschränkung liegt.
Eine Karte mit einer Warnung vor einer Höhenbeschränkung
Eine rote Sprechblase wird angezeigt, wenn die Route nicht den Vorschriften entspricht und eine Höhenbeschränkung verletzt.
Eine Karte, auf der ein Verstoß gegen die Höhenbeschränkung dargestellt ist
Gewicht Symbol für Gewichtsbeschränkung Ein roter Hinweis wird angezeigt, wenn das Gewicht des Fahrzeugs die zulässige Höchstlast der Straße überschreitet.
Eine Karte mit einem Symbol für eine Gewichtsbeschränkung
Lkw-Verbot Symbol für „Lkw-Verbot“ Eine rote Beschriftung wird angezeigt, wenn Sie auf einem Straßenabschnitt mit einer Beschränkung für Lkw unterwegs sind.
Eine Karte mit einem Symbol, das ein Lkw-Verbot anzeigt
Gefährliche Güter Ein Gefahrgutsymbol Eine rote Beschriftung wird angezeigt, wenn die Gefahrgutladung des Fahrzeugs auf einem Straßenabschnitt verboten ist.
Karte mit einem Gefahrgutsymbol

Funktionsweise von Routentokens

Ein routeToken ist ein verschlüsselter Snapshot einer Route, die vom Routing-Backend von Google erstellt wurde. Sie umfasst die Geometrie der geplanten Route sowie die physischen Abmessungen und das Einschränkungsprofil des Fahrzeugs.

Der Workflow umfasst die folgenden Schritte:

  1. Route anfordern: Ihr Backend-Server fordert eine Lkw-Route von der Routes API (oder Route Optimization API) an.
  2. Token empfangen: Die Routing API berechnet die konforme Route und gibt ein routeToken an Ihren Backend-Server zurück.
  3. Token weiterleiten: Ihr Backend-Server übergibt die routeToken- und Zielkoordinaten an Ihre mobile App.
  4. An SDK übergeben: Die mobile App übergibt die routeToken an das Navigation SDK.
  5. Navigation starten: Das Navigation SDK übernimmt alle Aspekte der detaillierten Routenführung, einschließlich des Renderns von Routenhinweisen und der dynamischen Neuberechnung der Route entsprechend den Einschränkungen des Fahrzeugs.

Dynamische Neuberechnungen und Umleitungen

Während der aktiven Navigation kann es aufgrund der Verkehrslage, von Straßensperrungen oder verpassten Abzweigungen dazu kommen, dass das Fahrzeug von der geplanten Route abweicht.

Wenn die Route neu berechnet wird:

  • Das Navigation SDK berechnet die Route zum Ziel automatisch neu.
  • Das SDK behält die im ursprünglichen routeToken codierten Fahrzeugattribute und ‑abmessungen bei.
  • Auf der neu berechneten Route werden niedrige Durchfahrten, Brücken mit Gewichtsbeschränkungen und Straßen, die für Lkw verboten sind, umfahren.

Implementierung: Lkw-spezifische Fahrt starten

Führen Sie die folgenden Schritte aus, um die detaillierte Routenführung mit einem Token für eine Route für große Fahrzeuge zu initialisieren und zu starten.

Schritt 1: Routentoken von Ihrem Backend abrufen

Ihre mobile App empfängt den String routeToken zusammen mit den Zielkoordinaten von Ihrem Backend-Server. Weitere Informationen zum Generieren dieses Tokens auf Ihrem Server finden Sie in der Routes API-Dokumentation unter Große Fahrzeugrouten und geschätzte Ankunftszeiten generieren.

Der folgende Code ist ein Beispiel für ein Routentoken:

{
  "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}

Schritt 2: CustomRoutesOptions konfigurieren

Übergeben Sie das Routentoken mit CustomRoutesOptions.builder an eine CustomRoutesOptions-Instanz:

  • Übergeben Sie das Token mit setRouteToken(routeToken).
  • Legen Sie die Mobilitätsform mit setTravelMode(CustomRoutesOptions.TravelMode.DRIVING) fest.

Schritt 3: Wegpunkte definieren und Ziele festlegen

Übergeben Sie die Wegpunkte Ihres Ziels und CustomRoutesOptions an navigator.setDestinations.

Beachten Sie beim Konfigurieren von Wegpunkten und Übergeben benutzerdefinierter Routenoptionen Folgendes:

  • Anforderung für Zielübereinstimmung: Die an setDestinations übergebenen Zielkoordinaten müssen mit den Zielkoordinaten übereinstimmen, die beim Generieren von routeToken verwendet wurden. Wenn Sie ein anderes Ziel angeben, wird ein Fehler ausgegeben.
  • Routenführung am Straßenrand: Große Nutzfahrzeuge können auf schmalen Straßen nicht so einfach wenden. Damit der Lkw das Ziel auf der richtigen Straßenseite erreicht, rufen Sie setPreferSameSideOfRoad(true) für Ihre Wegpunkte auf.
  • Zwischenstopps für Fahrzeuge: Wenn Sie den Lkw zu einem geeigneten Ort für einen Zwischenstopp oder zum Entladen leiten möchten, rufen Sie setVehicleStopover(true) für Ihre Wegpunkte auf.
  • Navigationspunkte: Wenn Ihr Ziel einen bestimmten Frachteingang oder ein bestimmtes Dock hat, geben Sie es mit einem Navigationspunkt-Token an.

Schritt 4: Routenstatus und Startanleitung verarbeiten

Registrieren Sie ein OnResultListener auf dem ListenableResultFuture<Navigator.RouteStatus>. Wenn der Routenstatus OK ist, rufen Sie navigator.startGuidance auf, um die aktive detaillierte Routenführung zu starten.

Codebeispiel

Verwenden Sie CustomRoutesOptions.builder, um das Token festzulegen, und übergeben Sie es dann an navigator.setDestinations.

// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"

val customRoutesOptions = CustomRoutesOptions.builder()
    .setRouteToken(routeToken)
    .setTravelMode(TravelMode.DRIVING)
    .build()

// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
    .setLatLng(10.0, 20.0)
    .setTitle("title")
    .setVehicleStopover(true)
    .build()
destinations.add(destination);

navigator.setDestinations(destinations, customRoutesOptions)

Displays im Fahrzeug

Sie können die Navigation auf dem großen Display des Fahrzeugs mit Navigation für Android Auto anzeigen lassen.

Nächste Schritte

  • Navigations-UI anpassen: Sie können integrierte UI-Steuerelemente und visuelle Elemente wie den Kompass, die Schaltfläche zum Zentrieren und die Kameraperspektive anpassen.
  • Auf Navigationsereignisse warten: Navigationsaktualisierungen und Lebenszyklusereignisse wie Routenfortschritt, Änderungen der voraussichtlichen Ankunftszeit und Umleitungen verarbeiten.