Routen für große Fahrzeuge

Für wen ist dieser Leitfaden gedacht? Dieser Leitfaden richtet sich an mobile Entwickler, die für die Entwicklung der detaillierten Routenführung für Fahrer von Lkw, Bussen oder anderen großen Nutzfahrzeugen verantwortlich sind.

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

Lerninhalte

In diesem Leitfaden erfahren Sie, wie Sie Folgendes tun:

  • routeToken verwenden, um die Backend-Routenplanung mit der In-App-Navigation zu verbinden.
  • Das Navigation SDK konfigurieren , um eine vorab geplante Lkw-Route zu verwenden.
  • Verstehen, wie lkw-spezifische Einschränkungen dem Fahrer in der Navigationsbenutzeroberfläche angezeigt werden.

Vorbereitung

Bevor Sie beginnen, müssen Sie die folgenden Anforderungen erfüllen:

1. Zugriff für Ihr Projekt anfordern

Das Routing 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 Zugriff gewährt hat, muss Ihr Google Cloud-Projekt für das Routing 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 jedes Projekt bereitzustellen.

2. Backend-Routengenerierung einrichten und Routentoken abrufen

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

In Ihrer Backend-Anfrage muss travelMode: TRUCK zusammen mit den physischen Attributen des Fahrzeugs (Höhe, Breite, Länge, Gewicht, Anzahl der Achsen 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 die mindestens erforderliche Version des Navigation SDK 5.2.0 oder höher verwenden.

Außerdem muss Ihr Projekt die Standardanforderungen für die Einrichtung des Navigation SDK erfüllen.

Einschränkungen und Betriebsrichtlinien

Beachten Sie vor Beginn die folgenden Einschränkungen und Betriebsrichtlinien:

  • Geografische Verfügbarkeit: Das Routing für große Fahrzeuge ist in den zusammenhängenden 48 US-Bundesstaaten (allgemein verfügbar) und Japan (Testphase) verfügbar. In Alaska, Hawaii und US-Territorien ist es nicht verfügbar.
  • Fahrerhinweise 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 unter allen Straßenbedingungen geeignet und können Fahrer Gefahren aussetzen, z. B. niedrigen Durchfahrthöhen oder Straßen mit Gewichtsbeschränkungen. Fahrer müssen immer aufmerksam sein und die Verkehrsschilder und lokalen Vorschriften beachten.
  • Best-Effort-Routen: Wenn die Routing-API keine Route findet, die vollständig den Fahrzeugbeschränkungen entspricht, wird eine „Best-Effort“-Route zurückgegeben, die möglicherweise trotzdem eingeschränkte Abschnitte durchläuft. Die Routes API legt beispielsweise das Flag routeRestrictionsPartiallyIgnored in ihrer Antwort fest. Bei der Navigation auf diesen Routen zeigt das Navigation SDK Routenhinweise an, um die relevanten Einschränkungen hervorzuheben. Planen Sie Routen in diesen Fällen sorgfältig und verwenden Sie keine gekennzeichnete Route als einzige Informationsquelle für die Planung oder Navigation.
  • Nicht unterstützte Funktionen: Das Routing für große Fahrzeuge unterstützt die folgenden Funktionen nicht:
    • Mautpreise für Lkw
    • Geschwindigkeitsbegrenzungen für Lkw oder schwere Fahrzeuge
    • Routing für radioaktive Gefahrstoffe
  • 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 auf der Karte automatisch visuelle Warnungen an, sogenannte Routenhinweise, 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 Straßen in der Nähe.

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

Einschränkung Symbol und Text des Hinweises Bedingungen für die Anzeige
Höhe Ein gelbes Symbol für Höhenbeschränkungen
Gelb = Warnung, Ihr Fahrzeug nähert sich der zulässigen Höchsthöhe
Ein rotes Symbol für Höhenbeschränkung
Rot = Ihr Fahrzeug überschreitet die zulässige Höchsthöhe
Ein gelber Hinweis wird angezeigt, wenn die Höhe des Fahrzeugs nahe an der Einschränkung liegt.
Eine Karte mit einer Warnung vor einer Höhenbeschränkung
Ein roter Hinweis wird angezeigt, wenn die Route nicht konform ist und eine Höhenbeschränkung verletzt.
Eine Karte, auf der ein Verstoß gegen die Höhenbeschränkung zu sehen ist
Gewicht Symbol für Gewichtsbeschränkung Ein roter Hinweis wird angezeigt, wenn das Gewicht des Fahrzeugs das Limit der Straße überschreitet.
Eine Karte mit einem Symbol für eine Gewichtsbeschränkung
Lkw verboten Symbol für „Lkw-Verbot“ Ein roter Hinweis 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
Gefahrgut Ein Gefahrgutsymbol Ein roter Hinweis 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. Es enthält die geplante Routengeometrie 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 erhalten: Die Routing-API berechnet die konforme Route und gibt ein routeToken an Ihren Backend-Server zurück.
  3. Token weiterleiten: Ihr Backend-Server übergibt das routeToken und Zielkoordinaten an Ihre mobile App.
  4. An SDK übergeben: Die mobile App übergibt das routeToken an das Navigation SDK.
  5. Navigation starten: Das Navigation SDK verarbeitet alle Aspekte der detaillierten Routenführung, einschließlich der Darstellung von Routenhinweisen und der Handhabung der dynamischen Routenneuberechnung entsprechend den Einschränkungen des Fahrzeugs.

Dynamische Neuberechnungen und Umleitungen

Während der aktiven Navigation können die Verkehrslage, Straßensperrungen oder verpasste Abzweigungen dazu führen, dass das Fahrzeug von der geplanten Route abweicht.

Wenn eine Umleitung erfolgt:

  • Das Navigation SDK berechnet die Route zum Ziel automatisch neu.
  • Das SDK behält die Fahrzeugattribute und ‑abmessungen bei, die im ursprünglichen routeToken codiert sind.
  • Die neu berechnete Route vermeidet niedrige Durchfahrthöhen, Brücken mit Gewichtsbeschränkungen und Straßen, die für Lkw verboten sind.

Implementierung: Lkw-spezifische Fahrt starten

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

Schritt 1: Routentoken von Ihrem Backend abrufen

Ihre mobile App empfängt die routeToken-String 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 Routen und voraussichtliche Ankunftszeiten für große Fahrzeuge 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 den Reisemodus mit setTravelMode(CustomRoutesOptions.TravelMode.DRIVING) fest.

Schritt 3: Wegpunkte definieren und Ziele festlegen

Übergeben Sie Ihre Zielwegpunkte und CustomRoutesOptions an navigator.setDestinations.

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

  • Anforderung für Zielübereinstimmung: Die Zielkoordinaten, die an setDestinations übergeben werden, müssen mit den Zielkoordinaten übereinstimmen, die beim Generieren des routeToken verwendet werden. Wenn Sie ein anderes Ziel angeben, tritt ein Fehler auf.
  • Routing auf der Straßenseite: Große Nutzfahrzeuge können auf engen Straßen nicht so einfach wenden. Damit sich der Lkw dem Ziel auf der richtigen Straßenseite nähert, rufen Sie für Ihre Wegpunkte setPreferSameSideOfRoad(true) auf.
  • Fahrzeugstopps: Wenn Sie den Lkw zu einem geeigneten Ort zum Anhalten oder Entladen leiten möchten, rufen Sie für Ihre Wegpunkte setVehicleStopover(true) auf.
  • Navigationspunkte: Wenn Ihr Ziel einen bestimmten Fracht eingang oder eine Laderampe hat, geben Sie ihn mit einem Navigationspunkt Token an.

Schritt 4: Routenstatus verarbeiten und Navigation starten

Registrieren Sie ein OnResultListener für das 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)

Anzeigen im Fahrzeug

Sie können die Navigationssitzung für große Fahrzeuge mit Navigation for Android Auto auf die Bildschirme im Armaturenbrett projizieren.

Nächste Schritte

  • Navigationsbenutzeroberfläche ändern: Passen Sie integrierte UI-Steuerelemente und visuelle Elemente wie den Kompass, die Schaltfläche zum Neuzentrieren und die Kameraperspektive an.
  • Auf Navigationsereignisse warten: Verarbeiten Sie Navigationsaktualisierungen und Lebenszyklusereignisse wie Routenfortschritt, Änderungen der voraussichtlichen Ankunftszeit und Umleitungen.