Häufig gestellte Fragen

Fakten zum Produkt

Netzwerk

Daten

UI-Anpassung

Routen

Simulator

Workflows

Fakten zum Produkt

In Ihrer App muss ein Dialogfeld mit den Hinweisen zu den Nutzungsbedingungen des Navigation SDK vorhanden sein, das jeder Fahrer akzeptieren muss. In diesem Dialogfeld kann der Fahrer den Nutzungsbedingungen zustimmen. Im Navigation SDK wird eine Textdatei mit den Nutzungsbedingungen bereitgestellt.
In Android können Sie die Methode NavigationApi.showTermsAndConditionsDialog verwenden, um das Dialogfeld mit den Begriffen aufzurufen.
Rufen Sie unter iOS GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName auf.
Alle von Google Maps Mobile unterstützten Sprachen sind automatisch für das Navigation SDK verfügbar. Ein Gerät hat eine Standardsystemsprache, die von einer App nicht geändert werden kann. Die App hat jedoch Zugriff auf über 70 Sprachen.

Ja. Nach dem Start in Android wird LocationListener weiterhin im Hintergrund ausgeführt. Ihre App fährt mit der Einrastfunktion an der Straße fort und behält die Lage bei.

Wenn Sie in iOS weiterhin Standortaktualisierungen für Position und Peilung im Hintergrund erhalten möchten, implementieren Sie die Straßenausrichtung und setzen Sie allowsBackgroundLocationUpdates auf YES.

Ja. Wenn eine Route erstellt oder geändert wird, stellt 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 Richtung ist verfügbar und wird standardmäßig angezeigt.

Netzwerk

Wie geht das Navigation SDK mit schlechter Konnektivität um?
Das Navigation SDK speichert die Route für jede Fahrt vorab im Cache. Die vorab im Cache gespeicherten Informationen umfassen Routeninformationen für 15 bis 20 Minuten sowie Alternativrouten für den Fall, dass der Fahrer von der Route abweicht. Das Navigation SDK ermittelt die ungefähre Position mithilfe des GPS und der Sensoren des Geräts.
Ist ein Offlinemodus verfügbar?
Nein, das Navigation SDK bietet derzeit keinen Offlinemodus. Das SDK bietet jedoch vorab im Cache gespeicherte Informationen für eine Fahrt.

Daten

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

Ja. Rufen Sie in Android Navigator.getRouteSegments() auf, um Wegbeschreibungen für eine Route abzurufen.

Rufen Sie auf einem iOS-Gerät GMSNavigator.routeLegs(read) auf.

Ist zu Beginn einer Route eine detaillierte Routenführung verfügbar?
Ja. Das Navigation SDK enthält eine Liste von Routensegmenten. Außerdem kann der Fahrer durch die Karte mit den Wegbeschreibungen in der Kopfzeile wischen, um die einzelnen Abbiegungen zu sehen.
Wie wird die voraussichtliche Ankunftszeit an die App-Nutzer kommuniziert?

So können Sie App-Nutzern auf Android-Geräten Informationen zur voraussichtlichen Ankunftszeit mitteilen:

  1. Rufen Sie mit Navigator.getTimeAndDistanceList() die Zeit und Entfernung für alle Wegpunkte ab.
  2. Leiten Sie diese Informationen wie für die ETA des Treibers an die Clientanwendung weiter.

So können Sie App-Nutzern auf iOS-Geräten Informationen zur voraussichtlichen Ankunftszeit mitteilen:

  1. Rufen Sie die Streckenabschnitte in der Fahrt mit Navigator.getRouteSegments() ab.
  2. Rufen Sie für jede Etappe GMSNavigator.timeToNextDestination auf.
  3. Leiten Sie die Zeitinformationen an die Clientanwendung weiter, so wie Sie es derzeit für die ETA des Treibers tun.
Kann RoadSnappedLocationProvider verwendet werden, um die aktuelle, abgefahrene Position des Fahrers abzurufen, wenn die Navigation nicht im Vordergrund ausgeführt wird?

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

Damit die Navigation in iOS im Hintergrund weiter ausgeführt wird, implementieren Sie den Delegaten für GMSRoadSnappedLocationProviderDelegate und legen Sie das Attribut allowsBackgroundLocationUpdates auf TRUE fest.

Unterstützt das Navigation SDK Geofencing?

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

Mit remainingTimeOrdistanceChangeListener können Sie diese Funktionalität näherungsweise bestimmen.

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

Wenn Sie den Grenzwert beispielsweise auf 100 m festlegen, erhalten Sie einen Callback, 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äufigere Callbacks erhalten. Prüfen Sie dann die verbleibende Entfernung, um festzustellen, ob Sie sich nah genug am Abhol- und Absetzort befinden.

Implementieren Sie unter iOS den Bevollmächtigten GMSNavigatorDelegate.didUpdateRemainingDistance, um den Abstand zwischen Benachrichtigungen zu verwalten.

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

Ja. In Android lassen sich Benachrichtigungen über Navigator.setHeadsUpNotificationEnabled verwalten. Diese Methode hat ein boolesches Argument. FALSE deaktiviert Benachrichtigungen, TRUE aktiviert Benachrichtigungen.

Deaktivieren Sie unter iOS Hintergrundbenachrichtigungen für Standorte, die an einer Straße ausgerichtet sind, indem Sie GMSRoadSnappedLocationProviderDelegate.allowsBackgroundLocationUpdates auf NEIN setzen.

Um die Hintergrundverarbeitung für andere Standortbenachrichtigungen zu deaktivieren, rufen Sie GMSNavigator.sendsBackgroundNotifications(NO) auf.

Die Transaktionsaufzeichnung erfasst Ein- und Ausstiege mit einer eindeutigen ID, die Google zu Abrechnungszwecken protokolliert. Weitere Informationen finden Sie in der Anleitung für Implementierungstest für Ihre Plattform:

Informationen zur Codierung von Abrechnungstransaktionen finden Sie unter Abrechenbare Transaktionen.

UI-Anpassung

Kann ich die beste Route farblich kennzeichnen?
Nein. Die Farbcodierung für bestimmte Routenoptionen wird derzeit nicht unterstützt.
Kann das Navigation SDK die voraussichtliche Ankunftszeit für das Ziel anzeigen?

Ja. In Android verwenden Sie die folgenden Methoden:

  1. Rufen Sie mit Navigator.getTimeAndDistanceList() die Zeit und Entfernung für alle Wegpunkte ab.
  2. Mit NavigationFragment.setEtaCardEnabled(false) blenden Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts aus.
  3. Rendering der endgültigen Ziel-ETA.

Für iOS verwenden Sie Folgendes:

  1. Rufen Sie einfach GMSNavigator.routeLegs(read) an.
  2. Rufen Sie mit dem letzten Streckenabschnitt GMSNavigator.timeToNextDestination auf.
  3. Blenden Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts aus, indem Sie MSMapView.settings.navigationFooterEnabled=NO auf FALSE setzen.
  4. Rendering der endgültigen Ziel-ETA.
Wie kann ich Aktualisierungen zur voraussichtlichen Ankunftszeit ausblenden?

Sie können Karten für voraussichtliche Ankunftszeiten mit den folgenden Methoden deaktivieren:

  • In Android: navigationView.setEtaCardEnabled(false).
  • Verwenden Sie unter iOS GMSMapView.settings.navigationFooterEnabled=NO.
Welche Anpassungen der Benutzeroberfläche sind für die Kopf- und Fußzeilenkarten verfügbar?

In Android verwenden Sie StylingOptions, um die Gestaltung der Hintergrundfarbe festzulegen. Mit den Mitgliedsfunktionen setHeaderEnabled und setFooterEnabled von NavigationFragment können Sie die Kopf- und Fußzeile ein- oder ausblenden.

Unter iOS können Sie die Hintergrundfarbe mit GMSMapView.settings.navigationHeaderPrimaryBackgroundColor festlegen. Mit den Eigenschaften navigationFooterEnabled und navigationHeaderEnabled von GMSUISettings können Sie die Kopf- und Fußzeile ein- oder ausblenden.

Routen

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

Ja. Erstellen Sie in Android einen Marker mit einem benutzerdefinierten Titel für das Ziel und dem Breiten-/Längengrad. Das Navigation SDK zeigt den benutzerdefinierten Titel und die Koordinaten im NavigationMap an.

Unter iOS erstellen Sie eine GMSMarker für das Ziel und zeigen sie an.

Kann ich das Navigation SDK verwenden, um Abweichungen von einem definierten Pfad zu verfolgen?

Ja. Unter Android kannst du Navigator.setRouteChangedListener verwenden, um Benachrichtigungen zu erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:

  1. Registrieren Sie einen Listener, der die Geräteposition entlang der Route mit der Methode Navigator.setRouteChangedListener prüft.
  2. Fügen Sie dem Callback-Event-Handler onRouteChanged Code hinzu:
    • App-Nutzer eine Nachricht mit aktualisierten Angaben zur voraussichtlichen Ankunftszeit und zur Entfernung senden.
    • Standort des Geräts erfassen
    • [optional] Fügen Sie weitere Funktionen hinzu, die Ihre App verarbeiten muss, wenn der Fahrer nicht auf der vorgeschriebenen Route ist.

Verwenden Sie unter iOS die GMSNavigator und die zugehörigen Bevollmächtigten, um Benachrichtigungen zu erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:

  1. Implementieren Sie im Ansichts-Controller das GMSNavigatorDelegate-Protokoll und das GMSRoadSnappedLocationProviderDelegate-Protokoll.
  2. Implementieren Sie GMSNavigatorDelegate.navigatorDidChangeRoute.
  3. Rufen Sie die neue Route mit den Attributen routeLegs und currentRouteLeg von GMSNavigator auf.
Kann der Fahrer die Navigation beenden, ohne die Route abzuschließen?

Ja. In Android kannst du die Methode Navigator.stopGuidance() aufrufen, um die Navigation zu beenden.

Rufen Sie auf einem iOS-Gerät GMSNavigator.clearDestinations auf.

Simulator

Unterstützt der Simulator Routenänderungen?

Ja. Rufe in Android simulateLocationsAlongNewRoute auf, um eine Fahrt mit einer Routenänderung zu simulieren. Bei der Methode simulateLocationsAlongExistingRoute werden Änderungen an der vorhandenen Route ignoriert.

Verwenden Sie unter iOS GMSLocationSimulator.simulateAlongNewRouteToDestinations, um eine Fahrt mit einer Routenänderung zu simulieren. Wenn Sie keine Routenänderungen erwarten, können Sie GMSLocationSimulator.simulateLocationsAlongExistingRoute oder GMSLocationSimulator.simulateAlongNewRouteToDestinations verwenden.

Workflows

Wie schließe ich die Benachrichtigung nach dem Schließen einer Aktivität, 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, stoppt die Navigation und die Benachrichtigung verschwindet.

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