Depois de definir as configurações do app para usar a API Geospatial, chame Earth.getCameraGeospatialPose()
para receber um GeospatialPose
que descreva o posicionamento geoespacial do dispositivo para a câmera no frame mais recente. Essa pose, gerenciada em um objeto Earth
, contém as seguintes informações:
- Local, expresso em latitude e longitude.
- Altitude
- Uma orientação que se aproxima da direção do usuário no sistema de coordenadas EUS, com X+ apontando para o leste, Y+ apontando para cima e Z+ apontando para o sul.
Verificar o estado do acompanhamento
Os valores geoespaciais são válidos apenas quando Earth.TrackingState
é TrackingState.TRACKING
. Envolva todas as chamadas de API Geospatial em um bloco de controle 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
não se tornar TrackingState.TRACKING
, Earth.TrackingState
poderá ser TrackingState.PAUSED
ou TrackingState.STOPPED
. Se nenhuma dessas condições for verdadeira, marque Earth.Earthstate
, que mostra outros estados de erro que podem impedir o rastreamento do objeto Earth
.
Ajustar a pose para ter precisão
Quando o dispositivo está na posição vertical na orientação padrão, os ângulos de inclinação (X+) e rolagem (Z+) tendem a ser precisos devido a um alinhamento natural com o rastreamento em RA. No entanto, os ângulos de guinada (Y+) podem variar dependendo da disponibilidade de dados do VPS e das condições temporais no local. Talvez o app precise fazer ajustes para aumentar a precisão.
GeospatialPose.getOrientationYawAccuracy()
fornece uma estimativa de precisão para os ângulos de guinada (Y+) de um determinado GeospatialPose
. A precisão da guinada da orientação é um número que descreve o raio, em graus, do nível de confiança do 68o percentil em torno dos ângulos de guinada retornados de GeospatialPose.getEastUpSouthQuaternion()
. Em outras palavras, há 68% de chance de que o ângulo de guinada real da GeospatialPose
seja preciso.
Valores maiores indicam menor acurácia. Por exemplo, se o ângulo de guinada estimado for de 60 graus e a precisão da guinada é de 10 graus, há uma probabilidade de 68% de que o ângulo de guina real esteja entre 50 e 70 graus.
A seguir
- Coloque uma Âncora geoespacial conseguindo a posição geoespacial dela.