Esperienza di navigazione personalizzata
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
L'SDK Navigation offre diversi modi per integrare un'esperienza di navigazione nella tua app. Questa pagina spiega cos'è un'esperienza di navigazione personalizzata e in che modo differisce dalle altre esperienze di navigazione disponibili nell'SDK Navigation.
Che cos'è un'esperienza di navigazione personalizzata?
Il modo principale per implementare l'SDK Navigation è utilizzare l'esperienza
di navigazione
Google, che ti consente di incorporare un'esperienza di navigazione passo passo che utilizza
elementi e immagini dell'interfaccia utente forniti da Google, simili all'esperienza di navigazione
all'interno delle app Google Maps. Se hai bisogno di una maggiore flessibilità rispetto a quella offerta dall'esperienza di navigazione di Google, puoi implementare un'esperienza di navigazione personalizzata.
Un'esperienza di navigazione personalizzata si riferisce a qualsiasi cosa, dall'eliminazione completa delle indicazioni stradali
e all'esecuzione della navigazione solo come processo in background, alla proiezione
di un'esperienza di guida altamente personalizzata su uno schermo separato dal dispositivo
che esegue la navigazione. Con un'esperienza di navigazione personalizzata, la tua app chiama
l'SDK Navigation per richiedere un feed di navigazione dettagliato, quindi
fornisci e gestisci gli elementi dell'interfaccia utente e gli elementi visivi che l'utente vede nell'esperienza di navigazione. Sebbene l'utilizzo dell'esperienza di navigazione di Google sia generalmente
più facile da implementare, la creazione di un'esperienza di navigazione personalizzata consente
una maggiore personalizzazione.
Quando crei un'esperienza di navigazione personalizzata, la tua app chiama l'SDK Navigation per avviare, eseguire e interrompere la navigazione, utilizzando il seguente flusso:
Avvia la navigazione. Come per l'esperienza di navigazione di Google, un'esperienza di navigazione personalizzata
comporta comunque la creazione di un'istanza di navigazione e
l'impostazione della destinazione. Tuttavia, con un'esperienza di navigazione personalizzata,
puoi ottenere questo risultato stabilendo prima una sessione di navigazione utilizzando
GMSNavigationService.createNavigationSession
, un oggetto non UI con stato
che può funzionare con o senza un controller di visualizzazione.
Per maggiori informazioni, consulta la sezione Dettagli sul feed di dati
delle indicazioni stradali passo passo.
Guarda la demo: il download dell'SDK Navigation contiene una demo
che puoi eseguire per vedere un esempio di esperienza di navigazione che passa
dalle indicazioni stradali dettagliate tramite la navigazione standard a un'esperienza
di navigazione che mostra solo la posizione del dispositivo che si sposta lungo una polilinea
stradale.
Navigazione attiva. Ecco un'altra differenza fondamentale tra un'esperienza di navigazione fornita da Google e un'esperienza di navigazione personalizzata.
Anziché trasferire le indicazioni al gestore eventi integrato dell'SDK Navigation, configura un listener per le indicazioni dettagliate passo passo implementando il protocollo GMSNavigatorListener
e poi implementa i gestori di eventi. In questo modo, la tua esperienza può rispondere agli eventi descritti in
Ascoltare gli eventi di
navigazione.
Termina la navigazione. Come per l'esperienza di navigazione di Google, anche la navigazione personalizzata richiede di terminare la navigazione nel modo più adatto all'esperienza dell'app.
Quando potresti utilizzare un'esperienza di navigazione personalizzata?
La tabella seguente descrive alcuni scenari di navigazione personalizzata.
Scenario di esempio |
Passaggi di livello avanzato |
Devi fornire indicazioni per il conducente solo testuali per i dispositivi di piccole dimensioni,
come i veicoli a due ruote. |
Crea il tuo navigatore e configura la guida passo passo come feed di dati
su un dispositivo con schermo piccolo mentre il navigatore viene eseguito sullo
smartphone del conducente al di fuori del suo campo visivo immediato. |
Vuoi rendere la tua app disponibile come servizio auto per i conducenti che
utilizzano Apple CarPlay. |
- Configura il servizio auto.
- Configura il progetto SDK Navigation.
- Crea un navigatore, se non l'hai ancora fatto.
- Configura un listener per le indicazioni stradali passo passo.
- Disegna la mappa sulla superficie dell'app per auto e compila i campi dal feed di dati che hai configurato.
Per maggiori informazioni, vedi Attivare la navigazione per CarPlay. |
I conducenti che utilizzano la tua app vogliono una mappa panoramica per la maggior parte del
viaggio, con indicazioni passo passo minime per le strade cittadine. |
La tua app deve consentire ai conducenti di entrare e uscire dall'esperienza di navigazione di Google
in base alle loro esigenze, senza alternare le impostazioni del navigatore per
destinazione e modalità di viaggio. |
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-31 UTC.
[null,null,["Ultimo aggiornamento 2025-08-31 UTC."],[[["\u003cp\u003eThe Navigation SDK offers a custom navigation experience for greater flexibility beyond the standard Google navigation experience.\u003c/p\u003e\n"],["\u003cp\u003eCustom navigation involves managing UI elements and visuals, starting navigation sessions, listening for events, and ending navigation.\u003c/p\u003e\n"],["\u003cp\u003eCustom experiences are suitable for scenarios like text-only guidance, Carplay integration, or combining overview maps with minimal turn-by-turn guidance.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can access the turn-by-turn data feed and detailed navigation events to create highly customized navigation interfaces.\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/ios-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 \u003cbr /\u003e\n\n For more information, see [Details about the turn-by-turn data\n feed](/maps/documentation/navigation/ios-sdk/nav-only-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 set up a listener for detailed turn-by-turn guidance by implementing the `GMSNavigatorListener` protocol, and then implement event\n handlers. This allows your experience to respond to the events described in\n [Listen for navigation\n events](/maps/documentation/navigation/ios-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 Apple Carplay. | 1. Set up the car service. 2. Set up your Navigation SDK project. 3. Establish a navigator if you haven't already. 4. Set up a listener for turn-by-turn guidance. 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 Carplay](/maps/documentation/navigation/ios-sdk/carplay) |\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. |"]]