Dopo aver configurato le impostazioni dell'app per l'utilizzo dell'API Geospaziale, puoi chiamare Earth.getCameraGeospatialPose()
per ottenere un GeospatialPose
che descriva la posizione geospaziale del dispositivo per la videocamera nell'ultimo fotogramma. Questa posa, gestita in un oggetto Earth
, contiene le seguenti informazioni:
- Posizione, espressa in latitudine e longitudine
- Altitudine
- Orientamento che approssimativamente la direzione in cui l'utente è rivolto nel sistema di coordinate EUS, con X+ rivolto a est, Y+ rivolto verso l'alto e Z+ rivolto a sud
Controllare lo stato del monitoraggio
I valori geospaziali sono validi solo, mentre Earth.TrackingState
è TrackingState.TRACKING
. Assicurati di aggregare tutte le chiamate API Geospatial in un blocco di controllo Earth.TrackingState
.
Java
if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) { GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose(); // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Kotlin
if (earth.trackingState == TrackingState.TRACKING) { val cameraGeospatialPose = earth.cameraGeospatialPose // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Se Earth.TrackingState
non diventa TrackingState.TRACKING
, Earth.TrackingState
potrebbe essere TrackingState.PAUSED
o TrackingState.STOPPED
. Se nessuna di queste condizioni è vera, controlla Earth.Earthstate
, che mostra altri stati di errore che potrebbero impedire il monitoraggio dell'oggetto Earth
.
Regola la posa per una maggiore precisione
Quando il dispositivo è in posizione verticale con l'orientamento predefinito, gli angoli di inclinazione (X+) e roll (Z+) tendono a essere precisi grazie a un allineamento naturale con il tracciamento AR. Tuttavia, gli angoli di scarto (Y+) possono variare a seconda della disponibilità dei dati VPS e delle condizioni temporali della località. È possibile che l'app debba apportare modifiche per garantire la precisione.
GeospatialPose.getOrientationYawAccuracy()
fornisce una stima dell'accuratezza per gli angoli di scarto (Y+) per una determinata GeospatialPose
. La precisione di scarto dell'orientamento è un numero che descrive il raggio, in gradi, del livello di confidenza del 68° percentile attorno agli angoli di scarto restituiti da GeospatialPose.getEastUpSouthQuaternion()
. In altre parole, esiste una probabilità del 68% che l'angolo di scarto effettivo della GeospatialPose
sia accurato.
Valori più grandi indicano una precisione minore. Ad esempio, se l'angolo di scarto stimato è di 60 gradi e l'accuratezza di scarto è di 10 gradi, c'è una probabilità del 68% che l'angolo di scarto reale sia compreso tra 50 e 70 gradi.
Passaggi successivi
- Posiziona un ancoraggio geospaziale ottenendo la posizione geospaziale dell'ancoraggio.