L'API Geospatial utilizza una combinazione di dati VPS e GPS per generare trasformazioni geospaziali ad alta precisione. L'API può essere utilizzata ovunque il dispositivo sia in grado di determinare la sua posizione:
- Nelle aree con scarsa precisione GPS, come spazi interni e ambienti urbani ad alta densità, l'API si affiderà alla copertura VPS per generare trasformazioni ad alta precisione.
- In ambienti esterni con poche ostruzioni o nessuna ostruzione, l'API Geospatial potrebbe essere in grado di utilizzare i dati di posizione GPS disponibili per generare trasformazioni geospaziali con elevata precisione.
Puoi determinare la disponibilità di VPS in una determinata posizione orizzontale prima dell'inizio della sessione AR e utilizzarla per creare esperienze più specifiche, ad esempio per presentare un pulsante "Inserisci AR" solo quando VPS è disponibile.
Abilita l'API ARCore
La tua app deve abilitare l'API ARCore per verificare la disponibilità di VPS.
Verificare la disponibilità di VPS nell'app
L'API Geospatial può essere utilizzata ovunque il dispositivo sia in grado di determinare la sua posizione. Se la tua esperienza AR dipende dalla copertura VPS, puoi utilizzare GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
per ottenere un'GARVPSAvailabilityFuture
, un'attività asincrona che verifica la disponibilità dei VPS in una determinata posizione orizzontale.
Una volta che hai la GARVPSAvailabilityFuture
, puoi ottenerne i risultati con il polling o tramite un callback.
Sondaggio sul risultato
Utilizza GARFuture.state
per conoscere lo stato di Future
. Esistono tre diversi stati:
GARFutureStatePending
: l'operazione non è ancora stata completata, pertanto non è noto alcun risultato.GARFutureStateCancelled
: l'operazione è stata annullata daGARFuture#cancel
. I callback registrati non verranno mai chiamati.GARFutureStateDone
: l'operazione è stata completata. UtilizzaGARVPSAvailabilityFuture.result
per ottenere il risultato.
Puoi continuare a controllare GARFuture.state
fino al completamento dell'attività.
Ottenere il risultato tramite callback
Puoi anche ottenere il risultato di un Future
tramite un callback. Utilizza GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
e fornisci un completionHandler
. Questo completionHandler
verrà chiamato nel thread principale subito dopo che lo stato di Future
sarà GARFutureStateDone
.
Annulla Future
Utilizza GARFuture#cancel
per tentare di annullare il Future
. A causa del parallelismo dei thread, è possibile che il tuo tentativo di annullamento non vada a buon fine.
GARFuture#cancel
restituisce YES
se questo tentativo è riuscito e NO
in caso contrario.
Usa l'API Geospatial senza copertura VPS
L'API Geospatial può essere utilizzata anche in aree che non dispongono di copertura VPS. In ambienti all'aperto con poche ostruzioni o nessuna ostruzione, il GPS può essere sufficiente per acquisire una posizione con precisione.
Passaggi successivi
- Ottieni la posizione geospaziale della fotocamera del dispositivo per determinare la posizione esatta del dispositivo dell'utente nel mondo reale.