L'API Geospatial utilizza una combinazione di dati VPS e GPS per generare trasformazioni geospaziali ad alta precisione. L'API può essere utilizzata in qualsiasi luogo in cui il dispositivo è in grado di determinare la propria posizione:
- Nelle aree con una scarsa precisione GPS, come gli spazi interni e gli ambienti urbani ad alta densità, l'API si baserà sulla copertura VPS per generare trasformazioni ad alta precisione.
- In ambienti esterni con poche o nessuna ostruzione sopraelevata, l'API Geospatial potrebbe essere in grado di utilizzare i dati sulla posizione GPS disponibili per generare trasformazioni geospaziali con elevata precisione.
Puoi determinare la disponibilità del VPS in una determinata posizione orizzontale prima dell'inizio della sessione AR e utilizzarla per creare esperienze più specifiche, ad esempio per mostrare un pulsante "Accedi all'AR" solo quando il VPS è disponibile.
Attiva l'API ARCore
L'app deve attivare l'API ARCore per controllare la disponibilità del VPS.
Verificare la disponibilità dei VPS nell'app
L'API Geospatial può essere utilizzata in qualsiasi luogo in cui il dispositivo è in grado di determinare la propria posizione. Se la tua esperienza AR dipende dalla copertura dei VPS, puoi utilizzare GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
per ottenere un GARVPSAvailabilityFuture
, un'attività asincrona che controlla la disponibilità dei VPS in una determinata posizione orizzontale.
Una volta ottenuto il GARVPSAvailabilityFuture
, puoi ottenerne il risultato mediante un sondaggio o una richiamata.
Sondaggio: il risultato
Utilizza GARFuture.state
per ottenere lo stato di Future
. Esistono tre stati diversi:
GARFutureStatePending
: l'operazione non è ancora completata, pertanto non è noto alcun risultato.GARFutureStateCancelled
: l'operazione è stata annullata daGARFuture#cancel
. Qualsiasi callback registrato non verrà mai chiamato.GARFutureStateDone
: l'operazione è stata completata. UtilizzaGARVPSAvailabilityFuture.result
per ottenere il risultato.
Puoi continuare a selezionare GARFuture.state
finché l'attività non è completata.
Ottenere il risultato tramite una chiamata di ritorno
Puoi anche ottenere il risultato di un Future
tramite un callback. Utilizza GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
e fornisci un completionHandler
. completionHandler
verrà chiamato nel thread principale poco dopo che Future
avrà lo stato GARFutureStateDone
.
Annulla Future
Utilizza GARFuture#cancel
per tentare di annullare Future
. A causa del parallelismo dei thread, potrebbe essere possibile che il tentativo di annullamento non vada a buon fine.
GARFuture#cancel
restituisce YES
se il tentativo è riuscito e NO
in caso contrario.
Usa l'API Geospatial senza copertura VPS
L'API Geospatial può essere utilizzata anche nelle aree che non hanno copertura VPS. In ambienti esterni con poche ostruzioni dall'alto o nessuna, il GPS può essere sufficiente per generare una posa con un'elevata precisione.
Passaggi successivi
- Ottieni la posa geospaziale della fotocamera del dispositivo per determinare la posizione esatta del dispositivo dell'utente nel mondo reale.