Domande frequenti
Dettagli del prodotto
- Come deve essere mostrata la notifica dei Termini di servizio di Navigation SDK?
- Quali lingue sono supportate dalle indicazioni stradali vocali?
- La direzione viene mantenuta quando il conducente esce dalla modalità di navigazione?
- Le polilinee sono disponibili quando si inizia o si modifica un percorso?
- Gli utenti dell'app devono avere installato Google Maps per il mobile?
- L'SDK Navigation può identificare i parcheggi vicino a ristoranti e altre destinazioni?
- L'SDK Navigation mostra la direzione del traffico nelle corsie quando ci si avvicina a un punto di svolta?
Problemi
- In Xcode 12, le app non vengono create correttamente per il simulatore. Come faccio a risolvere il problema?
GMSMapViewnon si carica.
Rete
Dati
- Posso recuperare tutte le fermate/destinazioni di un percorso prima di iniziare l'itinerario?
- Le indicazioni stradali passo passo sono disponibili all'inizio di un percorso?
- In che modo l'orario di arrivo stimato (ETA) viene comunicato agli utenti dell'app?
- È possibile utilizzare
RoadSnappedLocationProviderper ottenere la posizione attuale del conducente agganciata alla strada se la navigazione non è in primo piano? - L'SDK Navigation supporta il geofencing?
- Posso disattivare le notifiche quando l'app di navigazione è in background?
Personalizzazione della UI
- Posso codificare con un colore l'opzione di percorso migliore?
- L'SDK Navigation può mostrare l'orario di arrivo stimato per la destinazione finale?
- Come faccio a nascondere gli aggiornamenti dell'orario di arrivo stimato?
- Quali personalizzazioni dell'interfaccia utente sono disponibili per le schede di intestazione e piè di pagina?
Routing
- Posso fornire un percorso specifico a un conducente o rimuovere percorsi alternativi?
- Posso mostrare al conducente un'etichetta diversa per la destinazione rispetto alla località di destinazione predefinita?
- Posso utilizzare l'SDK Navigation per monitorare le deviazioni da un percorso definito?
- Il conducente può uscire dalla navigazione senza completare il percorso?
- L'SDK Navigation supporta il routing e la navigazione per camion e veicoli di grandi dimensioni?
Simulatore
Workflows
Servizi di mobilità
- In che modo l'utilizzo dell'SDK Navigation è diverso per i clienti di Mobility Services?
- Come faccio a sapere se sono un cliente di Mobility Services?
- Come viene fatturato l'SDK Navigation per i clienti di Mobility Services?
- Quali API dell'SDK di navigazione devono essere utilizzate solo dai clienti di Mobility Services?
- Se sono un cliente di Mobility Services, posso utilizzare anche un'implementazione dell'SDK di navigazione non di Mobility Services?
Dettagli del prodotto
- La tua app deve implementare una finestra di dialogo con la nota dei Termini di servizio di Navigation SDK che ogni conducente deve accettare. Questa finestra di dialogo offre al conducente l'opportunità di accettare i Termini di servizio. Un file di testo dei termini viene fornito con l'SDK Navigation.
- In Android, utilizza il metodo
NavigationApi.showTermsAndConditionsDialogper visualizzare la finestra di dialogo contenente i termini. - In iOS, chiama
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName. - Tutte le lingue supportate da Google Maps Mobile sono automaticamente disponibili per l'SDK di navigazione. Un dispositivo ha una lingua di sistema predefinita e un'app non può modificare questa impostazione, ma l'app ha accesso a oltre 70 lingue.
-
Sì. In Android, una volta avviata, l'app
LocationListenercontinua a essere eseguita in background. L'app continua ad agganciare la posizione alla strada e mantiene la direzione.In iOS, per continuare a ricevere aggiornamenti della posizione e della direzione in background, implementa l'aggancio alla strada e imposta
allowsBackgroundLocationUpdatessuYES. -
Sì. Quando un percorso viene creato o modificato,
RouteChangeListenerfornisce le polilinee. - No, l'SDK Navigation non richiede l'installazione di Google Maps Mobile sul dispositivo.
- No, al momento l'SDK Navigation non fornisce questa funzionalità.
- Sì. La direzione del traffico è disponibile e visualizzata per impostazione predefinita.
Problemi
- In Xcode 12, le app non vengono create correttamente per il simulatore. Come faccio a risolvere il problema?
-
Per risolvere il problema, apri le impostazioni di build del progetto Xcode e aggiungi
arm64aExcluded Architecturessolo per le build "iOS Simulator".Per saperne di più, consulta il seguente thread di StackOverflow.
- GMSMapView non si carica.
-
Se GMSMapView non si carica:
- Verifica che NavSDK sia abilitato nella console Cloud.
- Se l'SDK di navigazione è installato, ma il tuo progetto non utilizza le API dell'SDK di navigazione, rimuovilo dal file binario.
Rete
- In che modo l'SDK Navigation gestisce la connettività scadente?
- L'SDK Navigation pre-memorizza nella cache il percorso per ogni viaggio. Le informazioni pre-memorizzate nella cache includono informazioni sul percorso per 15-20 minuti e percorsi alternativi nel caso in cui il conducente devii dal percorso. Il Navigation SDK approssima la posizione utilizzando il GPS e i sensori del dispositivo.
- È disponibile una modalità offline?
- No, al momento l'SDK Navigation non offre una modalità offline, ma fornisce informazioni pre-memorizzate nella cache per un percorso.
Dati
- Posso recuperare tutte le fermate/destinazioni di un percorso prima di iniziare il tragitto?
-
Sì. In Android, per recuperare le indicazioni stradali di un percorso, chiama
Navigator.getRouteSegments().In iOS, chiama
GMSNavigator.routeLegs(read). - Le indicazioni stradali passo passo sono disponibili all'inizio di un percorso?
- Sì. Il Navigation SDK fornisce un elenco di segmenti di percorso. Inoltre, il conducente può scorrere la scheda delle indicazioni stradali nell'intestazione per visualizzare ogni manovra.
- In che modo l'orario di arrivo stimato viene comunicato agli utenti dell'app?
-
In Android, segui questi passaggi per fornire informazioni sull'orario di arrivo stimato agli utenti dell'app:
- Recupera il tempo e la distanza per tutti i waypoint utilizzando
Navigator.getTimeAndDistanceList(). - Inoltra queste informazioni all'applicazione client come fai per l'orario di arrivo stimato del conducente.
In iOS, segui questi passaggi per fornire informazioni sull'orario di arrivo stimato agli utenti dell'app:
- Recupera le tappe del percorso utilizzando
Navigator.getRouteSegments(). - Chiama
GMSNavigator.timeToNextDestinationper ogni tratta del percorso. - Inoltra le informazioni sull'orario all'applicazione client come fai per l'orario di arrivo stimato del conducente.
- Recupera il tempo e la distanza per tutti i waypoint utilizzando
-
È possibile utilizzare
RoadSnappedLocationProviderper ottenere la posizione attuale del conducente se la navigazione non è in primo piano? -
Sì. In Android, l'
RoadSnappedLocationProviderviene eseguito in background per impostazione predefinita.In iOS, per mantenere la navigazione in esecuzione in background, implementa il listener per
GMSRoadSnappedLocationProviderListenere imposta la proprietàallowsBackgroundLocationUpdatessuTRUE. - L'SDK Navigation supporta il geofencing?
-
No. Nel contesto della navigazione,
remainingTimeOrdistanceChangeListenerha un vantaggio rispetto a un geofence. Il recinto virtuale potrebbe non tenere conto della geometria della strada e potrebbe non essere centrato sul punto esatto verso cui il conducente sta navigando.Puoi approssimare questa funzionalità utilizzando
remainingTimeOrdistanceChangeListener.- Imposta la soglia per determinare la frequenza dei callback.
- Controlla la distanza rimanente dalla destinazione.
Ad esempio, se imposti la soglia su 100 m, ricevi un callback quando la distanza dalla destinazione cambia di 100 m. Man mano che la distanza diminuisce, puoi aggiornare questa soglia impostando un valore inferiore e ricevere callback più frequenti. Poi, controlla la distanza rimanente per determinare se sei abbastanza vicino al luogo di ritiro/consegna.
In iOS, implementa il listener
GMSNavigatorListener.didUpdateRemainingDistanceper gestire la distanza tra le notifiche. - Posso disattivare le notifiche quando l'app di navigazione è in background?
-
Sì. In Android, utilizza
Navigator.setHeadsUpNotificationEnabledper controllare le notifiche. Questo metodo ha un argomento booleano.FALSEdisattiva le notifiche;TRUEattiva le notifiche.In iOS, disattiva la notifica in background per le posizioni agganciate alla strada impostando
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdatessu NO.Per disattivare l'elaborazione in background per altre notifiche di posizione, chiama
GMSNavigator.sendsBackgroundNotifications(NO).
Personalizzazione della UI
- Posso assegnare un codice colore all'opzione di percorso migliore?
- No. Al momento non è supportata la codifica a colori di un'opzione di percorso specifica.
- L'SDK Navigation può mostrare l'orario di arrivo stimato per la destinazione finale?
-
Sì. In Android, utilizza i seguenti metodi:
- Recupera il tempo e la distanza per tutti i waypoint utilizzando
Navigator.getTimeAndDistanceList(). - Nascondi l'orario di arrivo stimato del waypoint corrente utilizzando
NavigationFragment.setEtaCardEnabled(false). - Esegui il rendering dell'orario di arrivo stimato della destinazione finale.
In iOS, utilizza quanto segue:
- Chiama il numero
GMSNavigator.routeLegs(read). - Con l'ultima tratta, chiama
GMSNavigator.timeToNextDestination. - Nascondi l'orario di arrivo stimato del waypoint corrente impostando
MSMapView.settings.navigationFooterEnabled=NOsu FALSE. - Esegui il rendering dell'orario di arrivo stimato della destinazione finale.
- Recupera il tempo e la distanza per tutti i waypoint utilizzando
- Come faccio a nascondere gli aggiornamenti dell'orario di arrivo stimato?
-
Puoi disattivare le schede ETA con i seguenti metodi:
- In Android, utilizza
navigationView.setEtaCardEnabled(false). - In iOS, utilizza
GMSMapView.settings.navigationFooterEnabled=NO.
- In Android, utilizza
-
In Android, utilizzi
StylingOptionsper impostare lo stile del colore di sfondo. Per nascondere o mostrare l'intestazione e il piè di pagina, utilizza le funzioni membrosetHeaderEnabledesetFooterEnableddiNavigationFragment.In iOS, utilizza
GMSMapView.settings.navigationHeaderPrimaryBackgroundColorper impostare lo stile del colore di sfondo. Per nascondere o mostrare l'intestazione e il piè di pagina, utilizza le proprietànavigationFooterEnabledenavigationHeaderEnableddiGMSUISettings.
Routing
- Posso fornire un percorso specifico a un conducente o rimuovere percorsi alternativi?
- No. Per impostazione predefinita, vengono forniti più percorsi e quello più veloce ha la priorità. Puoi modificare il percorso predefinito aggiungendo preferenze, ad esempio "evita autostrade e pedaggi", alla tua richiesta. Anche l'aggiunta di tappe intermedie influisce sul percorso.
- Posso mostrare all'utente dell'app un'etichetta per la destinazione diversa dalla località di destinazione predefinita?
-
Sì. In Android, crea un
Markercon un titolo personalizzato per la destinazione e la latitudine/longitudine. Navigation SDK mostra il titolo personalizzato e le coordinate suNavigationMap.In iOS, crei e visualizzi un
GMSMarkerper la destinazione. - Posso utilizzare l'SDK Navigation per monitorare le deviazioni da un percorso definito?
-
Sì. In Android, utilizza
Navigator.setRouteChangedListenerper ricevere notifiche quando un percorso cambia o ne viene consigliato uno nuovo:- Registra un listener che controlla la posizione del dispositivo lungo il percorso utilizzando il metodo
Navigator.setRouteChangedListener. - Aggiungi il codice al gestore di eventi di callback,
onRouteChanged:- Invia un messaggio all'utente dell'app con informazioni aggiornate su orario di arrivo stimato e distanza.
- Monitorare la posizione del dispositivo.
- [Facoltativo] Aggiungi altre funzionalità richieste dalla tua app per gestire i casi in cui il conducente non segue il percorso prescritto.
In iOS, utilizza
GMSNavigatore i relativi listener per ricevere notifiche quando un percorso cambia o ne viene consigliato uno nuovo:- Nel controller di visualizzazione della mappa, implementa il protocollo
GMSNavigatorListenere il protocolloGMSRoadSnappedLocationProviderListener. - Implementa
GMSNavigatorListener.navigatorDidChangeRoute. - Accedi alla nuova route utilizzando le proprietà
routeLegsecurrentRouteLegdiGMSNavigator.
- Registra un listener che controlla la posizione del dispositivo lungo il percorso utilizzando il metodo
-
Sì. In Android, chiama il metodo
Navigator.stopGuidance()per interrompere la navigazione.In iOS, chiama
GMSNavigator.clearDestinations. - L'SDK Navigation supporta il calcolo del percorso e la navigazione per camion e veicoli di grandi dimensioni?
-
Sì. Con il routing di veicoli di grandi dimensioni (LVR), puoi passare all'SDK Navigation i token di percorso specifici per i camion generati dall'API Routes o dall'API Route Optimization. L'SDK fornisce la navigazione passo passo con callout del percorso (altezza, peso, materiali pericolosi e limitazioni per i camion) e mantiene il profilo fisico del veicolo durante il cambio percorso dinamico. Per maggiori dettagli, consulta Naviga lungo i percorsi per veicoli di grandi dimensioni.
Simulatore
- Il simulatore supporta le modifiche del percorso?
-
Sì. In Android, chiama
simulateLocationsAlongNewRouteper simulare un percorso che include un cambio di itinerario. Il metodosimulateLocationsAlongExistingRouteignora le modifiche al percorso esistente.In iOS, utilizza
GMSLocationSimulator.simulateAlongNewRouteToDestinationsper simulare un percorso che include un cambio di percorso. Se non prevedi modifiche alle route, puoi utilizzareGMSLocationSimulator.simulateLocationsAlongExistingRouteoGMSLocationSimulator.simulateAlongNewRouteToDestinations.
Workflows
- Come faccio a ignorare la notifica dopo aver chiuso un'attività che contiene un frammento di navigazione?
-
La notifica di navigazione rimane visibile durante la navigazione, quando l'attività è chiusa. Quando il veicolo arriva a destinazione, la navigazione si interrompe e la notifica scompare.
Per gestire i clic sulla notifica, utilizza
Navigator.startGuidance(intent resumeIntent). L'eventoresume intentviene attivato quando l'utente dell'app fa clic sulla notifica. In genere,Navigator.startguidance(getIntent())viene chiamato dall'attività principale, che richiama l'attività quando l'utente dell'app fa clic sulla notifica.
Servizi di mobilità
I servizi di mobilità di Google Maps Platform offrono una raccolta di API e SDK per supportare le esigenze aziendali delle attività di trasporto e logistica. Per i clienti dei servizi di mobilità, l'SDK di navigazione viene in genere utilizzato insieme ai servizi correlati per l'ottimizzazione dei percorsi, l'invio, il tracker delle attività, l'analisi della flotta e altro ancora. Anche l'SDK Navigation viene fatturato in modo diverso per i clienti di Mobility Services. Per saperne di più, consulta la documentazione relativa ai servizi di mobilità.
I prodotti di mobilità sono disponibili solo per clienti selezionati. Per ulteriori informazioni, contatta il tuo rappresentante di vendita.
ReportBillableEvent nel codice. Solo i clienti di Mobility Services devono chiamare il metodo ReportBillableEvent.
Nell'SDK di navigazione sono presenti diverse API destinate esclusivamente ai clienti di Mobility Services, ai quali Google fattura in base alle transazioni. Se non sei un cliente di Mobility Services, i seguenti metodi non sono operativi:
Sì, i clienti di Mobility Services possono utilizzare sia le implementazioni di Mobility Services sia quelle non di Mobility Services del Navigation SDK. Tuttavia, puoi utilizzare un solo tipo di implementazione alla volta in un'app. Devi anche creare un nuovo progetto Google Cloud, un account di fatturazione e una chiave API, separati da quelli che utilizzi con l'implementazione di Mobility Services. Per saperne di più, consulta la panoramica della configurazione di Navigation SDK.
Per ulteriori informazioni sull'utilizzo di un'implementazione dell'SDK Navigation non basata su Mobility Services, inclusa la migrazione di un'app da un tipo di implementazione all'altro, contatta il tuo rappresentante Google per l'account.
Nota: se non sei un cliente di Mobility Services e vuoi saperne di più sulla raccolta di API e SDK di Mobility Services, contatta il team di vendita di Google Maps Platform.