Domande frequenti
Informazioni sul prodotto
- In che modo i Termini dell'SDK di navigazione di servizio?
- Quali lingue supporta la guida vocale?
- L'orientamento viene mantenuto quando il conducente esce dalla modalità di navigazione?
- Le polilinee sono disponibili all'inizio o stai modificando un percorso?
- Gli utenti dell'app devono avere Google Maps mobile installato?
- L'SDK di navigazione può trovare parcheggio vicino a ristoranti e altre destinazioni?
- L'SDK di navigazione mostrare la direzione del traffico sulle corsie quando ci si avvicina a un punto di svolta?
- Quale SDK di navigazione Le API devono essere utilizzate solo dai clienti di Mobility Services?
Problemi
- In Xcode 12, le app non correttamente per il simulatore. Come faccio a risolvere il problema?
GMSMapView
non si carica.
Rete
- In che modo L'SDK di navigazione gestisce una connettività scadente?
- È disponibile una modalità offline?
Dati
- Posso recuperare tutti i fermate/destinazioni in un viaggio prima di iniziare il percorso?
- È disponibile una guida percorso passo passo? all'inizio di un percorso?
- Com'è l'orario di arrivo stimato (orario di arrivo stimato) comunicati agli utenti dell'app?
- Può
RoadSnappedLocationProvider
per ottenere i dati del conducente posizione attuale agganciata se la navigazione non è in primo piano? - L'SDK di navigazione supportano il geofencing?
- Posso disattivare le notifiche quando l'app di navigazione è in background?
Personalizzazione dell'interfaccia utente
- Posso assegnare un codice colore al meglio opzione di percorso?
- L'SDK di navigazione può se mostri l'orario di arrivo stimato per la destinazione finale.
- Come faccio a nascondere gli aggiornamenti dell'orario di arrivo stimato?
- Quali personalizzazioni della UI sono disponibili per le schede di intestazione e piè di pagina?
Routing
- Posso indicare 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 usare l'SDK di navigazione? monitorare le deviazioni da un percorso definito?
- Il conducente può uscire dalla navigazione senza per completare il percorso?
Simulatore
Workflows
- Come faccio a ignorare la notifica dopo aver chiuso un'attività che contiene un frammento di navigazione? (Solo Android) di Gemini Advanced.
Informazioni sul prodotto
- L'app deve implementare una finestra di dialogo con i Termini dell'SDK di navigazione di servizio che ogni conducente deve accettare. Questa finestra di dialogo fornisce al conducente la possibilità di accettare i Termini di servizio. Un file di testo dei termini viene fornita con l'SDK di navigazione.
- Su Android, utilizza l'
NavigationApi.showTermsAndConditionsDialog
per visualizzare la finestra di dialogo contenente i termini. di Gemini Advanced.
- In iOS, chiama
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Tutte le lingue supportate da Google Maps Mobile vengono 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 avviato,
LocationListener
continua a vengono eseguiti in background. L'app continua ad agganciarsi alla posizione e mantiene l'orientamento.In iOS, per continuare a ricevere aggiornamenti di posizione e orientamento in background, implementare l'agganciamento e impostare Da
allowsBackgroundLocationUpdates
aYES
. -
Sì. Quando un percorso viene creato o modificato,
RouteChangeListener
fornisce le polilinee. - No, l'SDK di navigazione non richiede Google Maps Mobile da installare sul dispositivo.
- No, l'SDK di navigazione non fornisce questa funzionalità al momento nel tempo.
- Sì. La direzione del traffico è disponibile e visualizzata per impostazione predefinita.
- Quale SDK di navigazione Le API devono essere utilizzate solo dai clienti di Mobility Services?
-
Nell'SDK di navigazione sono presenti diverse API destinate esclusivamente all'utilizzo da parte dei clienti di Servizi di mobilità, la cui fatturazione è gestita da Google in base alla transazione. Se non sei un cliente di Servizi di mobilità, i seguenti metodi sono autonomi:
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
arm64
alExcluded Architectures
per "Simulatore iOS" solo build.Per maggiori informazioni, vedi il seguente thread di StackOverflow.
- GMSMapView non viene caricato.
-
Se GMSMapView non viene caricato:
- Verifica che NavSDK sia abilitato nella console Cloud.
- Se Nav SDK è installato, ma il tuo progetto non utilizza le API Nav SDK, rimuovilo dal tuo file binario.
Rete
- In che modo l'SDK di navigazione gestisce una connettività scadente?
- L'SDK di navigazione prememorizza il percorso per ogni viaggio. Le informazioni prememorizzate nella cache includono informazioni di routing per 15-20 minuti, e percorsi alternativi nel caso in cui il conducente si discosta dal percorso. La L'SDK di navigazione indica la posizione approssimativa utilizzando il GPS del dispositivo e i sensori.
- È disponibile una modalità offline?
- No, l'SDK di navigazione non offre una modalità offline; ma l'SDK fornisce informazioni pre-memorizzate nella cache per un viaggio.
Dati
- Posso recuperare tutte le fermate/destinazioni di un viaggio prima di iniziare lungo il percorso?
-
Sì. In Android, per recuperare le indicazioni stradali per un percorso, chiama
Navigator.getRouteSegments()
.In iOS, chiama
GMSNavigator.routeLegs(read)
. - È disponibile la guida passo passo all'inizio di un percorso?
- Sì. L'SDK di navigazione fornisce un elenco di segmenti di percorso. Inoltre, il conducente può far scorrere la scheda delle indicazioni stradali nell'intestazione per vedere ogni manovra.
- Come viene comunicato l'orario di arrivo stimato agli utenti dell'app?
-
In Android, svolgi i passaggi che seguono per fornire informazioni sull'orario di arrivo stimato agli utenti dell'app:
- Recupera il tempo e la distanza per tutte le tappe utilizzando
Navigator.getTimeAndDistanceList()
. - Inoltra queste informazioni all'applicazione client mentre attualmente effettuate 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 zampe nel percorso utilizzando
Navigator.getRouteSegments()
. - Chiama il numero
GMSNavigator.timeToNextDestination
per ogni tappa del viaggio. - Inoltra le informazioni sull'orario all'applicazione client mentre attualmente effettuate per l'orario di arrivo stimato del conducente.
- Recupera il tempo e la distanza per tutte le tappe utilizzando
-
Il
RoadSnappedLocationProvider
può essere utilizzato per ottenere la carta d'identità posizione attuale agganciata se la navigazione non è in primo piano? -
Sì. In Android, il
RoadSnappedLocationProvider
viene eseguito sfondo per impostazione predefinita.In iOS, per mantenere la navigazione in esecuzione in background, implementa il listener per
GMSRoadSnappedLocationProviderListener
e imposta il valore proprietàallowsBackgroundLocationUpdates
aTRUE
. - L'SDK di navigazione supporta il geofencing?
-
No. Nel contesto della navigazione,
remainingTimeOrdistanceChangeListener
ha un vantaggio rispetto a un semplice recinto virtuale. Il recinto virtuale potrebbe non tenere conto e potrebbe non essere centrata sul punto esatto in cui autista mentre naviga.Puoi approssimare questa funzionalità utilizzando
remainingTimeOrdistanceChangeListener
.- Imposta la soglia per determinare la frequenza dei callback.
- Controlla la distanza rimanente per raggiungere la destinazione.
Ad esempio, se imposti la soglia su 100 m, ricevi una richiamata quando la distanza dalla destinazione cambia di 100 m. Man mano che la distanza diminuisce, puoi aggiornare questa soglia impostandola su un valore inferiore e ricevere callback più frequenti. Quindi, controlla la distanza rimanente determinare se sei abbastanza vicino al punto di partenza/arrivo.
In iOS, implementa il listener
GMSNavigatorListener.didUpdateRemainingDistance
per gestire la distanza tra le notifiche. - Posso disattivare le notifiche quando l'app di navigazione è in background?
-
Sì. In Android, usa
Navigator.setHeadsUpNotificationEnabled
per controllare le notifiche. Questo metodo ha un argomento booleano.FALSE
disabilita le notifiche;TRUE
attiva le notifiche.In iOS, disattiva la notifica in background per le posizioni agganciate alla strada impostazione
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
verso NO.Per disattivare l'elaborazione in background per altre notifiche sulla posizione, chiama
GMSNavigator.sendsBackgroundNotifications(NO)
.
Personalizzazione dell'interfaccia utente
- Posso assegnare un codice colore all'opzione di percorso migliore?
- No. La codifica con colori di un'opzione di percorso specifica non è al momento supportata.
- L'SDK di navigazione 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 tutte le tappe utilizzando
Navigator.getTimeAndDistanceList()
. - Nascondi l'orario di arrivo stimato della tappa corrente utilizzando
NavigationFragment.setEtaCardEnabled(false)
. - Visualizza l'orario di arrivo stimato finale.
In iOS, utilizza quanto segue:
- Chiama il numero
GMSNavigator.routeLegs(read)
. - Con l'ultima tappa, chiama
GMSNavigator.timeToNextDestination
. - Nascondi l'orario di arrivo stimato della tappa corrente utilizzando
Da
MSMapView.settings.navigationFooterEnabled=NO
a FALSE. - Visualizza l'orario di arrivo stimato finale.
- Recupera il tempo e la distanza per tutte le tappe utilizzando
- Come faccio a nascondere gli aggiornamenti dell'orario di arrivo stimato?
-
Puoi disattivare le schede Orario di arrivo stimato con i seguenti metodi:
- In Android, usa
navigationView.setEtaCardEnabled(false)
. - In iOS, utilizza
GMSMapView.settings.navigationFooterEnabled=NO
.
- In Android, usa
-
In Android, usi
StylingOptions
per impostare lo sfondo stili cromatici. Per nascondere o mostrare l'intestazione e piè di pagina, usa isetHeaderEnabled
esetFooterEnabled
funzioni per i membri diNavigationFragment
.In iOS, utilizza
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
per impostare lo stile del colore dello sfondo. Per nascondere o mostrare l'intestazione e il piè di pagina usanavigationFooterEnabled
enavigationHeaderEnabled
diGMSUISettings
.
Routing
- Posso indicare 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, come "evitare autostrade e pedaggi", alla tua richiesta. L'aggiunta di tappe influisce anche sul percorso.
- Posso mostrare all'utente dell'app un'etichetta diversa da quella predefinita per la destinazione località di destinazione?
-
Sì. In Android, crea un
Marker
con un titolo personalizzato per la destinazione e latitudine/longitudine. La L'SDK di navigazione mostra il titolo personalizzato e le coordinate suNavigationMap
.In iOS, puoi creare e visualizzare un
GMSMarker
per la destinazione. - Posso utilizzare l'SDK di navigazione per monitorare le deviazioni da un percorso definito?
-
Sì. In Android, usa
Navigator.setRouteChangedListener
per ricevi notifiche quando un percorso cambia o viene consigliato un nuovo percorso:- Registra un listener che controlli la posizione del dispositivo lungo il percorso
usando 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.
- Monitora la posizione del dispositivo.
- [Facoltativo] Aggiungi altre funzionalità richieste dall'app per gestire quando il conducente deve uscire dal percorso prescritto.
In iOS, utilizza
GMSNavigator
e i relativi listener per ricevi notifiche quando un percorso cambia o viene consigliato un nuovo percorso:- Sul controller di visualizzazione della mappa, implementa
GMSNavigatorListener
e il protocolloGMSRoadSnappedLocationProviderListener
. - Implementa
GMSNavigatorListener.navigatorDidChangeRoute
. - Accedi al nuovo percorso utilizzando
routeLegs
e ProprietàcurrentRouteLeg
diGMSNavigator
.
- Registra un listener che controlli la posizione del dispositivo lungo il percorso
usando il metodo
-
Sì. In Android, chiama il metodo
Navigator.stopGuidance()
per interrompi la navigazione.In iOS, chiama
GMSNavigator.clearDestinations
.
Simulatore
- Il simulatore supporta i cambi di percorso?
-
Sì. In Android, chiama
simulateLocationsAlongNewRoute
al simulare un viaggio che include una modifica del percorso.simulateLocationsAlongExistingRoute
ignora le modifiche alla route esistente.In iOS, utilizza
GMSLocationSimulator.simulateAlongNewRouteToDestinations
per simulare un viaggio che include una modifica del percorso. Se non prevedi modifiche al percorso, puoi usareGMSLocationSimulator.simulateLocationsAlongExistingRoute
oGMSLocationSimulator.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 intent
si attiva quando l'utente dell'app fa clic sulla notifica. In genere,Navigator.startguidance(getIntent())
viene chiamato l'attività principale, che ricorda l'attività quando l'utente dell'app fa clic sulla notifica.