Das Navigation SDK bietet verschiedene Möglichkeiten, eine Navigation in Ihre App einzubinden. Auf dieser Seite wird erläutert, was eine benutzerdefinierte Navigation ist und wie sie sich von anderen Navigationsfunktionen im Navigation SDK unterscheidet.
Was ist eine benutzerdefinierte Navigation?
Die primäre Methode zur Implementierung des Navigation SDK ist die Verwendung der Google-Navigation. Damit können Sie eine detaillierte Routenführung einbetten, die von Google bereitgestellte UI-Elemente und visuelle Elemente verwendet – ähnlich wie die Navigation in der Google Maps App. Wenn Sie mehr Flexibilität benötigen, als die Google-Navigation bietet, können Sie eine benutzerdefinierte Navigation implementieren. Eine benutzerdefinierte Navigation kann alles sein – von der vollständigen Eliminierung der Abbiegehinweise und der Ausführung der Navigation nur als Hintergrundprozess bis hin zur Projektion einer stark angepassten Navigation auf einen Bildschirm, der vom Gerät getrennt ist, auf dem die Navigation ausgeführt wird. Bei einer benutzerdefinierten Navigation ruft Ihre App das Navigation SDK auf, um einen detaillierten Routenführungsfeed anzufordern. Anschließend stellen Sie die UI-Elemente und visuellen Elemente bereit, die der Nutzer in der Navigation sieht, und verwalten sie. Die Verwendung der Google-Navigation ist im Allgemeinen einfacher zu implementieren, aber die Erstellung einer eigenen benutzerdefinierten Navigation ermöglicht mehr Anpassungen.
Wenn Sie eine benutzerdefinierte Navigation erstellen, ruft Ihre App das Navigation SDK auf, um die Navigation zu starten, auszuführen und zu beenden. Dabei wird folgender Ablauf verwendet:
Starten Sie die Navigation. Wenn Sie eine benutzerdefinierte Navigation starten möchten, erstellen Sie eine Navigationsinstanz und legen Sie das Ziel fest. Richten Sie mit
GMSNavigationService.createNavigationSessioneine Navigationssitzung ein. Dieses zustandstragende Nicht-UI-Objekt funktioniert mit oder ohne Ansichts-Controller.Weitere Informationen finden Sie unter Details zum Datenfeed für die detaillierte Routenführung.
Demo ansehen: Der Download des Navigation SDK enthält eine Demo, die Sie ausführen können, um ein Beispiel für eine Navigation zu sehen, die zwischen der detaillierten Routenführung über die Standardnavigation und einer Navigation wechselt, bei der nur der Gerätestandort angezeigt wird, der sich entlang einer Straßenpolylinie bewegt.
Aktive Navigation: Hier ist ein weiterer wichtiger Unterschied zwischen der von Google bereitgestellten und der benutzerdefinierten Navigation. Anstatt die Routenführung an den integrierten Ereignismanager des Navigation SDK zu übergeben, richten Sie einen Listener für die detaillierte Routenführung ein, indem Sie das Protokoll
GMSNavigatorListenerund dann Event-Handler implementieren. So kann Ihre Anwendung auf die unter Auf Navigationsereignisse warten beschriebenen Ereignisse reagieren.Navigation beenden Wie bei der Google-Navigation müssen Sie auch bei der benutzerdefinierten Navigation die Navigation so beenden, wie es für die App am besten geeignet ist.
Wann würden Sie eine benutzerdefinierte Navigation verwenden?
In der folgenden Tabelle werden einige benutzerdefinierte Navigationsszenarien beschrieben.
Beispielszenario |
Allgemeine Schritte |
|---|---|
Sie müssen für kleine Geräte wie Zweiräder reine Textanweisungen für Fahrer bereitstellen. |
Erstellen Sie Ihren Navigator und richten Sie die detaillierte Routenführung als Datenfeed für ein Gerät mit kleinem Bildschirm ein, während der Navigator auf dem Smartphone des Fahrers außerhalb seines unmittelbaren Sichtfelds ausgeführt wird. |
Du möchtest deine App als Autoservice für Fahrer anbieten, die Apple CarPlay verwenden. |
Weitere Informationen finden Sie unter Navigation für CarPlay aktivieren. |
Fahrer, die Ihre App verwenden, möchten für den Großteil ihrer Fahrt eine Übersichtskarte und nur für Stadtstraßen eine detaillierte Routenführung. |
Ihre App sollte es Fahrern ermöglichen, die Google-Navigation nach Bedarf zu starten und zu beenden, ohne die Einstellungen des Navigators für Ziel und Fahrtmodus zu ändern. |