Benutzerdefinierte Navigation
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Das Navigation SDK bietet verschiedene Möglichkeiten, eine Navigationsfunktion in Ihre App einzubinden. Auf dieser Seite wird erläutert, was eine benutzerdefinierte Navigationsfunktion ist und wie sie sich von anderen Navigationsfunktionen unterscheidet, die im Navigation SDK verfügbar sind.
Was ist eine benutzerdefinierte Navigation?
Die primäre Methode zum Implementieren 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 Grafiken verwendet – ähnlich wie die Navigation in den Google Maps-Apps. Wenn Sie mehr Flexibilität als bei der Google-Navigation benötigen, können Sie eine benutzerdefinierte Navigation implementieren.
Eine benutzerdefinierte Navigation kann alles umfassen, 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 sich vom Gerät, auf dem die Navigation ausgeführt wird, unterscheidet. Bei einer benutzerdefinierten Navigation ruft Ihre App das Navigation SDK auf, um einen Feed für die Turn-by-Turn-Navigation anzufordern. Anschließend stellen Sie die UI-Elemente und Grafiken bereit und verwalten sie, die der Nutzer bei der Navigation sieht. Die Implementierung der Google-Navigationsfunktion ist in der Regel einfacher. Wenn Sie jedoch eine eigene benutzerdefinierte Navigationsfunktion erstellen, haben Sie mehr Möglichkeiten zur Anpassung.
Wenn Sie eine benutzerdefinierte Navigationsfunktion erstellen, ruft Ihre App das Navigation SDK auf, um die Navigation zu starten, auszuführen und zu beenden. Dabei wird der folgende Ablauf verwendet:
Starten Sie die Navigation. Wie bei der Google-Navigation müssen Sie auch bei einer benutzerdefinierten Navigation eine Navigationsinstanz erstellen und das Ziel festlegen. Bei einer benutzerdefinierten Navigation wird dies jedoch erreicht, indem zuerst eine Navigationssitzung mit GMSNavigationService.createNavigationSession
eingerichtet wird. Dies ist ein zustandsbehaftetes Nicht-UI-Objekt, das entweder mit oder ohne View-Controller verwendet werden kann.
Weitere Informationen finden Sie unter Turn-by-Turn-Datenfeed aktivieren.
Demo ansehen:Der Download des Navigation SDK enthält eine Demo, die Sie ausführen können, um ein Beispiel für eine Navigationsfunktion zu sehen, bei der zwischen der detaillierten Wegbeschreibung über die Standardnavigation und einer Navigationsfunktion gewechselt wird, bei der nur die Geräteposition entlang einer Straßen-Polylinie angezeigt wird.
Aktive Navigation: Hier ist ein weiterer wichtiger Unterschied zwischen einer von Google bereitgestellten Navigationsfunktion und einer benutzerdefinierten Navigationsfunktion.
Anstatt die Anleitung an den integrierten Event-Manager des Navigation SDK zu übergeben, aktivieren Sie den Turn-by-Turn-Feed und implementieren Event-Handler. So kann Ihre Anwendung auf die unter Navigationsereignisse beobachten beschriebenen Ereignisse reagieren.
Navigation beenden Wie bei der Google-Navigation müssen Sie auch bei der benutzerdefinierten Navigation die Navigation auf die für die App am besten geeignete Weise beenden.
Wann würden Sie eine benutzerdefinierte Navigation verwenden?
In der folgenden Tabelle werden einige benutzerdefinierte Navigationsszenarien beschrieben.
Beispielszenario |
Allgemeine Schritte |
Sie müssen eine reine Textführung für kleine Geräte wie Zweiräder bereitstellen. |
Erstellen Sie Ihren Navigator und richten Sie die detaillierte Routenführung als Datenfeed für ein kleines Display ein, während der Navigator auf dem Smartphone des Fahrers außerhalb seines unmittelbaren Sichtfelds ausgeführt wird. |
Sie möchten Ihre App als Autoservice für Fahrer anbieten, die Android Auto verwenden. |
- Richten Sie den Autoservice ein.
- Richten Sie Ihr Navigation SDK-Projekt ein.
- Richten Sie einen Navigator ein, falls noch nicht geschehen.
- Aktivieren Sie den Feed für die detaillierte Routenführung.
- Stellen Sie die Karte auf der Auto-App-Oberfläche dar und füllen Sie die Felder mit dem von Ihnen konfigurierten Datenfeed aus.
Weitere Informationen finden Sie unter Navigation für Android Auto 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. |
Fahrer sollten die Google-Navigation nach Bedarf starten und beenden können, ohne die Einstellungen des Navigators für Ziel und Fahrmodus ändern zu müssen. |
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-31 (UTC).
[null,null,["Zuletzt aktualisiert: 2025-08-31 (UTC)."],[[["\u003cp\u003eThe Navigation SDK offers both a pre-built Google navigation experience and the flexibility to create custom navigation experiences.\u003c/p\u003e\n"],["\u003cp\u003eCustom navigation experiences allow developers to manage UI elements, visuals, and event handling for a highly tailored user interface.\u003c/p\u003e\n"],["\u003cp\u003eThis customization ranges from background navigation to projecting guidance onto separate screens, giving developers more control.\u003c/p\u003e\n"],["\u003cp\u003eCustom experiences involve starting navigation, managing active navigation with event handlers, and ending navigation as needed.\u003c/p\u003e\n"],["\u003cp\u003eUse cases for custom navigation include text-only guidance, Android Auto integration, and dynamic switching between map views and turn-by-turn instructions.\u003c/p\u003e\n"]]],[],null,["# Custom navigation experience\n\nThe Navigation SDK provides different ways to integrate a navigation\nexperience into your app. This page explains what a custom navigation experience\nis and how it differs from other navigation experiences that are available in\nthe Navigation SDK.\n\nWhat is a custom navigation experience?\n---------------------------------------\n\nThe primary way to implement the Navigation SDK is to use the [Google\nnavigation\nexperience](/maps/documentation/navigation/android-sdk/intro-google-nav),\nwhich lets you embed a turn-by-turn navigation experience that uses\nGoogle-provided UI elements and visuals --- similar to the navigation experience\nwithin the Google Maps apps. If you need more flexibility than the Google\nnavigation experience offers, you can implement a custom navigation experience.\nA custom navigation experience refers to anything from eliminating turn guidance\nentirely with and running navigation only as a background process, to projecting\na highly customized guidance experience to a screen separate from the device\nthat runs the navigation. With a custom navigation experience, your app calls\nthe Navigation SDK to request a turn-by-turn navigation feed, and then\nyou provide and manage the UI elements and visuals that the user sees in the\nnavigation experience. While using the Google navigation experience is generally\neasier to implement, building your own custom navigation experience allows for\nmore customization.\n\nWhen you create a custom navigation experience, your app calls the Navigation\nSDK to start, run, and stop navigation, using the following flow:\n\n1. **Start navigation** . As with the Google navigation experience, a custom\n navigation experience still involves creating a navigation instance and\n setting the destination. However, with a customized navigation experience,\n you achieve this by first establishing a navigation session using\n `GMSNavigationService.createNavigationSession`, which is a state-bearing\n non-UI object that can operate either with a view controller, or without\n one.\n\n For more information, see [Enable turn-by-turn data\n feed](/maps/documentation/navigation/android-sdk/tbt-feed).\n\n **See the demo:** The download of the Navigation SDK contains a demo\n you can run to see an example of a navigation experience that switches\n between turn-by-turn guidance through standard navigation to a navigation\n experience that shows only the device location moving along a road\n polyline.\n2. **Active navigation** . Here is another key difference between a\n Google-provided navigation experience and a custom navigation experience.\n Instead of handing off guidance to the built-in event manager of the\n Navigation SDK, you enable the turn-by-turn feed and implement event\n handlers. This allows your experience to respond to the events described in\n [Listen for navigation\n events](/maps/documentation/navigation/android-sdk/events).\n\n3. **End navigation**. As with the Google navigation experience, custom\n navigation also requires you to terminate navigation in the manner best\n suited for the app's experience.\n\nWhen might you use a custom navigation experience?\n--------------------------------------------------\n\nThe following table describes some custom navigation scenarios.\n\n| **Example scenario** | **High-level steps** |\n|----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| You need to provide text-only driver guidance for small devices such as 2-wheeled vehicles. | Create your navigator and set up the turn-by-turn guidance as a data feed to a small screen device while the navigator runs on the driver's mobile phone outside of their immediate view. |\n| You want to make your app available as a car service for drivers who use Android Auto. | 1. Set up the car service. 2. Set up your Navigation SDK project. 3. Establish a navigator if you haven't already. 4. Enable the turn-by-turn guidance feed. 5. Draw the map on the auto app surface and populate the fields from the data feed you configured. For more information, see [Enable Navigation for Android Auto](/maps/documentation/navigation/android-sdk/android-auto) |\n| Drivers using your app want an overview map for most of their journey, with only minimal turn-by-turn guidance for city streets. | Your app should allow drivers to enter and exit the Google navigation experience as they need, without alternating the navigator's settings for destination and trip mode. |"]]