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 Lkw, Bussen oder anderen großen Nutzfahrzeugen verantwortlich sind.

Inhalt dieses Leitfadens: In diesem Leitfaden wird erläutert, wie Sie eine von der Routes API oder der Route Optimization API generierte Lkw-spezifische Route verwenden, um eine detaillierte Routenführung mit dem Navigation SDK für iOS zu ermöglichen.

Lerninhalte

Sie lernen, wie Sie die folgenden Aufgaben ausführen:

  • Verwenden Sie eine routeToken, um die Backend-Routenplanung mit der Navigation in der App zu verbinden.
  • Konfigurieren Sie das Navigation SDK so, dass eine vorab geplante Lkw-Route verwendet wird.
  • Informationen dazu, wie Lkw-spezifische Einschränkungen für den Fahrer in der Navigations-UI angezeigt werden

Vorbereitung

Bevor Sie beginnen, sollten Sie prüfen, ob die folgenden Anforderungen erfüllt sind:

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.

Nachdem Google den Zugriff gewährt hat, müssen Sie dafür sorgen, dass Ihr Google Cloud-Projekt für die Routenplanung für große Fahrzeuge bereitgestellt wird.

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. Backend-Routengenerierung einrichten und Routentoken abrufen

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

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

3. Mindestanforderungen an SDK und System erfüllen

Ihre App muss mindestens die Navigation SDK-Version 5.4.0 oder höher verwenden.

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

Einschränkungen und Betriebsrichtlinien

Beachten Sie vor dem Start 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. In Alaska, Hawaii und US‑Territorien ist die Funktion nicht verfügbar.
  • Hinweise für Fahrer und Sicherheit: Fahrer dürfen sich nicht ausschließlich auf die vom Navigation SDK zurückgegebenen Routen verlassen, um sicher oder legal zu fahren. Die Routen sind möglicherweise nicht für alle Straßenbedingungen geeignet und können Fahrer Gefahren wie niedrigen Durchfahrtshöhen oder Straßen mit Gewichtsbeschränkungen aussetzen. Fahrer müssen immer aufmerksam sein und sich an die aufgestellten Straßenschilder und lokalen Vorschriften halten.
  • Best-Effort-Routen: Wenn die Routing API keine Route finden kann, die alle Fahrzeugeinschränkungen berücksichtigt, gibt sie eine „Best-Effort-Route“ zurück, die möglicherweise dennoch eingeschränkte Segmente enthält. Die Routes API legt beispielsweise das Flag routeRestrictionsPartiallyIgnored in ihrer Antwort fest. Wenn Sie diese Routen befahren, werden im Navigation SDK Routen-Callouts angezeigt, um die relevanten Einschränkungen hervorzuheben. Planen Sie Routen in diesen Fällen sorgfältig und verwenden Sie eine markierte Route nicht als einzige verlässliche Quelle für die Planung oder Navigation.
  • Nicht unterstützte Funktionen: Die folgenden Funktionen werden beim Routing für große Fahrzeuge nicht unterstützt:
    • Lkw-Mautpreise
    • Geschwindigkeitsbegrenzungen für Lkw oder schwere Fahrzeuge
    • Routenplanung für radioaktive Gefahrgüter
  • Nutzungslimits: Für Anfragen an das Navigation SDK gelten die standardmäßigen Nutzungs- und Kontingentlimits. Weitere Informationen finden Sie unter Nutzung und Abrechnung.

Lkw-spezifische Benutzeroberfläche anzeigen (Routen-Callouts)

Das Navigation SDK zeigt automatisch visuelle Warnungen, sogenannte Routenhinweise, auf der Karte an, um Fahrer auf bevorstehende Lkw-Einschränkungen hinzuweisen. 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 Callouts für die folgenden Einschränkungen:

Einschränkung Callout-Symbol und -Text Bedingungen für die Anzeige
Höhe Ein gelbes Symbol für Höhenbeschränkung
Gelb = Warnung, Ihr Fahrzeug ist nahe an der maximal zulässigen Höhe
Ein rotes Symbol für Höhenbeschränkung
Rot = Ihr Fahrzeug ist höher als die maximal zulässige Höhe
Ein gelber Hinweis wird angezeigt, wenn die Höhe des Fahrzeugs nahe an der Beschränkung liegt.
Karte mit einer Warnung zu einer Höhenbeschränkung
Ein roter Hinweis wird angezeigt, wenn die Route nicht konform ist und gegen eine Höhenbeschränkung verstößt.
Karte, auf der ein Verstoß gegen die Höhenbeschränkung dargestellt wird
Gewicht Symbol für Gewichtsbeschränkung Ein roter Hinweis wird angezeigt, wenn das Gewicht des Fahrzeugs das Limit der Straße überschreitet.
Karte mit einem Symbol für eine Gewichtsbeschränkung
Lkw-Verbot Symbol für Lkw-Verbot Ein roter Hinweis wird angezeigt, wenn Sie auf einem Straßenabschnitt mit einer Einschränkung für Nutzfahrzeuge fahren.
Karte mit einem Symbol, das auf ein Lkw-Verbot hinweist
Gefährliche Güter Ein Symbol für Gefahrgut Ein roter Hinweis wird angezeigt, wenn die Gefahrgutladung des Fahrzeugs auf einem Straßensegment verboten ist.
Karte mit einem Symbol für Gefahrgüter

Funktionsweise von Routentokens

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

Der Workflow umfasst folgende Schritte:

  1. Route anfordern: Ihr Backend-Server fordert eine Lkw-Route von der Routes API (oder der 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 die 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 Routen-Callouts und der dynamischen Routenneuberechnung gemäß den Einschränkungen des Fahrzeugs.

Dynamische Neuberechnung und Routenänderung

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

Wenn die Route neu berechnet wird, geschieht Folgendes:

  • Das Navigation SDK berechnet die Route zum Ziel automatisch neu.
  • Das SDK behält die Fahrzeugattribute und -dimensionen bei, die im ursprünglichen routeToken codiert sind.
  • Auf der neu berechneten Route werden niedrige Durchfahrtshöhen, Brücken mit Gewichtsbeschränkungen und Straßen, die für Nutzfahrzeuge gesperrt sind, vermieden.

Implementierung: Lkw-spezifische Fahrt starten

So initialisieren und starten Sie die detaillierte Routenführung mit einem Routentoken für große Fahrzeuge:

Schritt 1: Routentoken vom 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 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: Ziele mit dem Routentoken festlegen

Übergeben Sie die routeToken an die Methode mapView.navigatorsetDestinationsWithToken:completionHandler:. Das Navigation SDK ruft die Ziele aus dem Routentoken ab, zusammen mit dem Routingprofil TRUCK, das es anweist, Einschränkungen für große Fahrzeuge anzuwenden. Sie müssen keine Wegpunkte übergeben. Der Mobilitätsmodus Ihrer App muss .driving (GMSNavigationTravelModeDriving, Standard) oder .twoWheeler (GMSNavigationTravelModeTwoWheeler) sein.

Legen Sie Wegpunktoptionen in der Routes API-Anfrage fest, mit der das Routentoken erstellt wird. Das Navigation SDK ruft sie zusammen mit Ihren Zielen aus dem Token ab. Für große Fahrzeuge gibt es folgende Optionen:

  • Routenführung auf der Straßenseite: Große Nutzfahrzeuge können auf engen Straßen nicht einfach wenden. Damit der Lkw das Ziel auf der richtigen Straßenseite anfährt, setzen Sie sideOfRoad am Zielwegpunkt auf true.
  • Zwischenstopps für Fahrzeuge: Wenn Sie den Lkw zu einem geeigneten Ort zum Anhalten oder Entladen leiten möchten, setzen Sie vehicleStopover am Zielwegpunkt auf true.
  • Navigationspunkte: Wenn Ihr Ziel einen ausgewiesenen Frachteinfahrt oder eine Laderampe hat, geben Sie diese mit einem Navigationspunkt-Token an.

Schritt 3: Routenstatus verarbeiten und Navigation starten

Wenn das Navigation SDK die Route berechnet hat, wird ein GMSNavigationRouteDescription an den Abschluss-Handler übergeben. Wenn routeStatus den Wert .OK (GMSRouteStatusOK) hat, legen Sie isGuidanceActive = true (guidanceActive = YES) fest, um die aktive detaillierte Routenführung zu starten.

Informationen dazu, wie Sie prüfen, ob das Navigation SDK Ihr Routentoken angewendet hat, finden Sie unter Prüfen, ob das Navigation SDK Ihr Routentoken angewendet hat.

Codebeispiel

Übergeben Sie das Routentoken an setDestinationsWithToken:completionHandler: und starten Sie die Routenführung, wenn der Routenstatus .OK ist.

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

mapView.navigator?.setDestinationsWithToken(routeToken) { [weak self] routeDescription, error in
  if routeDescription?.routeStatus == .OK {
    self?.mapView.navigator?.isGuidanceActive = true
  }
}

Displays im Fahrzeug

Mit der Navigation für CarPlay können Sie die Navigation für große Fahrzeuge auf Displays im Armaturenbrett anzeigen lassen.

Nächste Schritte

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