FAQ

Produktdetails

Probleme

Netzwerk

Daten

UI-Anpassung

Routing

Simulator

Workflows

Mobilitätsdienste

Produktdetails

Ihre App muss ein Dialogfeld mit den Nutzungsbedingungen des Navigations-SDK implementieren, das jeder Fahrer akzeptieren muss. In diesem Dialogfeld kann der Fahrer den Nutzungsbedingungen zustimmen. Eine Textdatei mit den Nutzungsbedingungen ist im Navigation SDK enthalten.
Unter Android können Sie die Methode NavigationApi.showTermsAndConditionsDialog verwenden, um das Dialogfeld mit den Nutzungsbedingungen aufzurufen.
Unter iOS: Wählen Sie GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName.
Alle von Google Maps Mobile unterstützten Sprachen sind automatisch für das Navigation SDK verfügbar. Ein Gerät hat eine Standardsystemsprache und eine App kann diese Einstellung nicht ändern. Die App hat jedoch Zugriff auf über 70 Sprachen.

Ja. Unter Android wird die LocationListener nach dem Starten im Hintergrund weiter ausgeführt. Die App fügt die Position weiterhin an Straßen an und behält die Peilung bei.

Wenn Sie unter iOS weiterhin Standortaktualisierungen für Position und Peilung im Hintergrund erhalten möchten, implementieren Sie das Anpinnen an Straßen und legen Sie allowsBackgroundLocationUpdates auf YES fest.

Ja. Wenn eine Route erstellt oder geändert wird, stellt das Symbol RouteChangeListener Polylinien bereit.

Nein. Für das Navigation SDK muss Google Maps Mobile nicht auf dem Gerät installiert sein.
Nein, das Navigation SDK bietet diese Funktion derzeit nicht.
Ja. Die Verkehrsrichtung ist verfügbar und wird standardmäßig angezeigt.

Probleme

In Xcode 12 werden Anwendungen nicht richtig für den Simulator erstellt. Was kann ich tun?

Öffnen Sie die Build-Einstellungen Ihres Xcode-Projekts und fügen Sie arm64 unter Excluded Architectures hinzu, allerdings nur für Builds vom Typ „iOS Simulator“.

Weitere Informationen finden Sie in diesem StackOverflow-Thread.

GMSMapView wird nicht geladen.

Wenn die GMSMapView nicht geladen wird:

  • Prüfen Sie, ob das NavSDK in der Cloud Console aktiviert ist.
  • Wenn das Nav SDK installiert ist, Ihr Projekt aber keine Nav SDK APIs verwendet, entfernen Sie es aus der Binärdatei.

Netzwerk

Wie geht das Navigation SDK mit einer schlechten Verbindung um?
Das Navigation SDK speichert die Route für jede Fahrt vorab im Cache. Die vorab im Cache gespeicherten Informationen umfassen Routinginformationen für 15 bis 20 Minuten und Routenalternativen für den Fall, dass der Fahrer von der Route abweicht. Das Navigations-SDK ermittelt den ungefähren Standort anhand des GPS und der Sensoren des Geräts.
Ist ein Offlinemodus verfügbar?
Nein, das Navigations-SDK bietet derzeit keinen Offlinemodus. Das SDK stellt jedoch vorab im Cache gespeicherte Informationen für eine Fahrt bereit.

Daten

Kann ich alle Haltestellen/Ziele einer Fahrt abrufen, bevor ich die Route starte?

Ja. Unter Android rufen Sie die Wegbeschreibung für eine Route mit Navigator.getRouteSegments() auf.

iOS: Rufen Sie GMSNavigator.routeLegs(read) an.

Ist eine detaillierte Routenführung zu Beginn einer Route verfügbar?
Ja. Das Navigations-SDK stellt eine Liste von Routensegmenten bereit. Außerdem kann der Fahrer in der Kopfzeile über die Navigationskarte wischen, um sich die einzelnen Fahrmanöver anzusehen.
Wie wird die geschätzte Ankunftszeit an die App-Nutzer gesendet?

So geben Sie unter Android Informationen zur geschätzten Ankunftszeit für App-Nutzer an:

  1. Rufen Sie mit Navigator.getTimeAndDistanceList() die Zeit und Entfernung für alle Wegpunkte ab.
  2. Leiten Sie diese Informationen an die Clientanwendung weiter, wie Sie es derzeit für die voraussichtliche Ankunftszeit des Fahrers tun.

So geben Sie unter iOS Informationen zur geschätzten Ankunftszeit für App-Nutzer an:

  1. Rufen Sie die Strecken im Weg mit Navigator.getRouteSegments() ab.
  2. Rufen Sie GMSNavigator.timeToNextDestination für jede Fahrtstrecke auf.
  3. Reichen Sie die Zeitinformationen wie derzeit für die voraussichtliche Ankunftszeit des Fahrers an die Clientanwendung weiter.
Kann RoadSnappedLocationProvider verwendet werden, um den aktuellen gesnapten Standort des Fahrers abzurufen, wenn die Navigation nicht im Vordergrund ist?

Ja. Unter Android wird RoadSnappedLocationProvider standardmäßig im Hintergrund ausgeführt.

Wenn Sie die Navigation unter iOS im Hintergrund laufen lassen möchten, implementieren Sie den Listener für GMSRoadSnappedLocationProviderListener und legen Sie die Property allowsBackgroundLocationUpdates auf TRUE fest.

Unterstützt das Navigation SDK Geofencing?

Nein. Im Navigationskontext hat remainingTimeOrdistanceChangeListener einen Vorteil gegenüber einem einfachen Geofence. Der Geofence berücksichtigt möglicherweise nicht die Straßengeometrie und ist möglicherweise nicht genau auf den Punkt ausgerichtet, zu dem der Fahrer navigiert.

Mit remainingTimeOrdistanceChangeListener können Sie diese Funktion annähernd erreichen.

  1. Legen Sie den Grenzwert fest, um die Häufigkeit der Rückrufe zu bestimmen.
  2. Prüfen Sie die verbleibende Entfernung zum Ziel.

Wenn Sie den Grenzwert beispielsweise auf 100 m festlegen, erhalten Sie einen Rückruf, wenn sich die Entfernung zum Ziel um 100 m ändert. Wenn die Entfernung abnimmt, können Sie diesen Grenzwert auf einen kleineren Wert aktualisieren und häufiger Rückrufe erhalten. Prüfen Sie dann die verbleibende Entfernung, um festzustellen, ob Sie nah genug am Abhol-/Abgabeort sind.

Implementiere unter iOS den Listener GMSNavigatorListener.didUpdateRemainingDistance, um den Abstand zwischen Benachrichtigungen zu verwalten.

Kann ich Benachrichtigungen deaktivieren, wenn die Navigations-App im Hintergrund ausgeführt wird?

Ja. Unter Android kannst du Benachrichtigungen mit der Taste Navigator.setHeadsUpNotificationEnabled verwalten. Diese Methode hat ein boolesches Argument. Mit FALSE werden Benachrichtigungen deaktiviert, mit TRUE aktiviert.

Deaktivieren Sie unter iOS die Hintergrundbenachrichtigungen für an Straßen ausgerichtete Standorte, indem Sie GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates auf „NEIN“ setzen.

Wenn Sie die Hintergrundverarbeitung für andere Standortbenachrichtigungen deaktivieren möchten, geben Sie GMSNavigator.sendsBackgroundNotifications(NO) ein.

UI-Anpassung

Kann ich die beste Routenoption farblich kennzeichnen?
Nein. Eine bestimmte Routenoption kann derzeit nicht farblich codiert werden.
Kann das Navigation SDK die voraussichtliche Ankunftszeit für das Ziel anzeigen?

Ja. Unter Android haben Sie folgende Möglichkeiten:

  1. Rufen Sie mit Navigator.getTimeAndDistanceList() die Zeit und Entfernung für alle Wegpunkte ab.
  2. Mit NavigationFragment.setEtaCardEnabled(false) können Sie die geschätzte Ankunftszeit für den aktuellen Wegpunkt ausblenden.
  3. Rendern Sie die geschätzte Ankunftszeit am Ziel.

Unter iOS:

  1. Rufen Sie einfach GMSNavigator.routeLegs(read) an.
  2. Rufen Sie für die letzte Etappe GMSNavigator.timeToNextDestination an.
  3. Wenn Sie die geschätzte Ankunftszeit des aktuellen Wegpunkts ausblenden möchten, verwenden Sie MSMapView.settings.navigationFooterEnabled=NO für FALSE.
  4. Rendern Sie die geschätzte Ankunftszeit am Ziel.
Wie kann ich Updates zur geschätzten Ankunftszeit ausblenden?

Sie können ETA-Karten mit den folgenden Methoden deaktivieren:

  • Unter Android: navigationView.setEtaCardEnabled(false) verwenden
  • Unter iOS: Verwenden Sie GMSMapView.settings.navigationFooterEnabled=NO.
Welche UI-Anpassungen sind für die Kopf- und Fußzeilenkarten verfügbar?

Unter Android wird die Hintergrundfarbe mit StylingOptions festgelegt. Mit den Mitgliedsfunktionen setHeaderEnabled und setFooterEnabled von NavigationFragment können Sie den Header und den Footer aus- oder einblenden.

Unter iOS kannst du mit GMSMapView.settings.navigationHeaderPrimaryBackgroundColor das Design der Hintergrundfarbe festlegen. Mit den Eigenschaften navigationFooterEnabled und navigationHeaderEnabled von GMSUISettings können Sie die Kopf- und Fußzeile aus- oder einblenden.

Routing

Kann ich einem Fahrer eine bestimmte Route vorgeben oder alternative Routen entfernen?
Nein. Standardmäßig werden mehrere Routen angezeigt und die schnellste Route hat Priorität. Sie können die Standardroute beeinflussen, indem Sie Ihrer Anfrage Einstellungen wie „Autobahnen und Mautstraßen vermeiden“ hinzufügen. Das Hinzufügen von Wegpunkten wirkt sich auch auf die Route aus.
Kann ich dem App-Nutzer ein anderes Label für das Ziel als den Standardzielort anzeigen?

Ja. Erstellen Sie unter Android eine Marker mit einem benutzerdefinierten Titel für das Ziel und den Breiten-/Längengrad. Das Navigations-SDK zeigt den benutzerdefinierten Titel und die Koordinaten auf der NavigationMap an.

Unter iOS erstellen und präsentieren Sie einen GMSMarker für das Ziel.

Kann ich mit dem Navigation SDK Abweichungen von einem definierten Pfad erfassen?

Ja. Unter Android können Sie mit Navigator.setRouteChangedListener Benachrichtigungen erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:

  1. Registrieren Sie einen Listener, der die Geräteposition entlang der Route mithilfe der Methode Navigator.setRouteChangedListener prüft.
  2. Fügen Sie dem Callback-Ereignis-Handler onRouteChanged Code hinzu:
    • Senden Sie eine Nachricht an den App-Nutzer mit aktualisierten Informationen zum geschätzten Ankunftstermin und zur Entfernung.
    • den Standort des Geräts verfolgen.
    • [Optional] Fügen Sie weitere Funktionen hinzu, die von Ihrer App benötigt werden, um zu steuern, was passiert, wenn der Fahrer nicht auf der vorgeschriebenen Route ist.

Unter iOS können Sie mit GMSNavigator und den zugehörigen Listenern Benachrichtigungen erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:

  1. Implementieren Sie im Viewcontroller der Karte das GMSNavigatorListener-Protokoll und das GMSRoadSnappedLocationProviderListener-Protokoll.
  2. Implementieren Sie GMSNavigatorListener.navigatorDidChangeRoute.
  3. Rufe die neue Route über die Eigenschaften routeLegs und currentRouteLeg von GMSNavigator auf.
Kann der Fahrer die Navigation beenden, ohne die Route abzuschließen?

Ja. Rufen Sie unter Android die Methode Navigator.stopGuidance() auf, um die Navigation zu beenden.

iOS: Rufen Sie GMSNavigator.clearDestinations an.

Simulator

Unterstützt der Simulator Routenänderungen?

Ja. Unter Android können Sie simulateLocationsAlongNewRoute drücken, um eine Fahrt mit Routenänderung zu simulieren. Mit der Methode simulateLocationsAlongExistingRoute werden Änderungen an der vorhandenen Route ignoriert.

Unter iOS können Sie mit GMSLocationSimulator.simulateAlongNewRouteToDestinations eine Fahrt mit Routenänderung simulieren. Wenn Sie keine Routenänderungen erwarten, können Sie GMSLocationSimulator.simulateLocationsAlongExistingRoute oder GMSLocationSimulator.simulateAlongNewRouteToDestinations verwenden.

Workflows

Wie kann ich die Benachrichtigung schließen, nachdem ich eine Aktivität geschlossen habe, die ein Navigationsfragment enthält?

Die Navigationsbenachrichtigung bleibt während der Navigation sichtbar, wenn die Aktivität geschlossen ist. Wenn das Fahrzeug am Ziel ankommt, wird die Navigation beendet und die Benachrichtigung verschwindet.

Verwenden Sie die Navigator.startGuidance(intent resumeIntent), um Klicks auf die Benachrichtigung zu verarbeiten. resume intent wird ausgelöst, wenn der App-Nutzer auf die Benachrichtigung klickt. Normalerweise wird die Navigator.startguidance(getIntent()) von der Hauptaktivität aufgerufen, die die Aktivität aufruft, wenn der App-Nutzer auf die Benachrichtigung klickt.

Mobilitätsdienste

Wie unterscheidet sich die Verwendung des Navigation SDK für Kunden von Mobilitätsdiensten?

Die Mobilitätsdienste der Google Maps Platform bieten eine Reihe von APIs und SDKs, die die Anforderungen von Unternehmen aus der Transport- und Logistikbranche unterstützen. Für Kunden von Mobilitätsdiensten wird das Navigations-SDK in der Regel in Verbindung mit ähnlichen Diensten für Routenoptimierung, Dispatch, Aufgaben-Tracking, Flottenanalysen usw. verwendet. Für Mobility Services-Kunden wird das Navigation SDK anders in Rechnung gestellt. Weitere Informationen finden Sie in der Dokumentation zu Mobilitätsdiensten.

Mobilitätsprodukte sind derzeit nur für ausgewählte Kunden verfügbar. Weitere Informationen erhalten Sie von Ihrem Vertriebsmitarbeiter.

Woher weiß ich, ob ich Mobility Services-Kunde bin?
Wenn Sie nicht sicher sind, ob Sie das Navigation SDK derzeit als Mobility Services-Kunde implementieren, suchen Sie in Ihrem Code nach einem ReportBillableEvent-Aufruf. Nur Kunden von Mobility Services sollten die Methode ReportBillableEvent aufrufen.

Wie wird das Navigation SDK für Kunden von Mobilitätsdiensten abgerechnet?
Für Kunden von Mobilitätsdiensten hängen Abrechnung und Preise für das Navigations-SDK von der Dienstleistungsvereinbarung ab, die Sie mit der Google Maps Platform haben. Informationen dazu, wie Sie dafür sorgen können, dass Ihre Mobility Services-Implementierung korrekt abgerechnet wird, finden Sie unter Abrechnungsüberprüfung. Weitere Informationen zur Abrechnung von Mobilitätsdiensten erhalten Sie von Ihrem Vertriebsmitarbeiter.

Welche Navigation SDK APIs sollten nur von Mobility Services-Kunden verwendet werden?

Es gibt mehrere APIs im Navigation SDK, die nur für Kunden von Mobility Services bestimmt sind. Diese werden von Google pro Transaktion in Rechnung gestellt. Wenn Sie kein Kunde der Mobilitätsdienste sind, haben die folgenden Methoden keine Auswirkungen:

Kann ich als Kunde von Mobility Services auch eine Implementierung des Navigation SDKs verwenden, die nicht zu Mobility Services gehört?

Ja, Kunden von Mobilitätsdiensten können sowohl Mobilitätsdienste als auch Implementierungen des Navigations-SDKs ohne Mobilitätsdienste verwenden. In einer App kann jedoch jeweils nur ein Implementierungstyp verwendet werden. Außerdem müssen Sie ein neues Google Cloud-Projekt, ein neues Abrechnungskonto und einen neuen API-Schlüssel erstellen, die nicht mit denen identisch sind, die Sie für Ihre Mobility Services-Implementierung verwenden. Weitere Informationen finden Sie in der Einrichtungsanleitung für das Navigations-SDK.

Weitere Informationen zur Verwendung einer Implementierung des Navigation SDK, die nicht auf Mobilitätsdiensten basiert, und zur Migration einer App von einem Implementierungstyp zum anderen erhalten Sie von Ihrem Google-Kundenbetreuer.

Hinweis: Wenn Sie derzeit kein Kunde von Mobility Services sind und mehr über die APIs und SDKs von Mobility Services erfahren möchten, wenden Sie sich an den Google Maps Platform-Vertrieb.