Conseguir a pose geoespacial da câmera do dispositivo

Depois de definir as configurações do app para usar a API Geospatial, você poderá acessar o AREarthManager.CameraGeospatialPose da câmera do dispositivo. Essa pose, gerenciada em um objeto AREarthManager, contém as seguintes informações:

  • Localização, expressa em latitude e longitude
  • Altitude
  • Uma orientação aproximada da direção em que o usuário está de frente no sistema de coordenadas EUS, com X+ apontando para o leste, Y+ para cima e Z+ para o sul

Verificar o estado do acompanhamento

Os valores geoespaciais são válidos apenas quando AREarthManager.EarthTrackingState é TrackingState.Tracking. Encapsule todas as chamadas da API Geospatial em um bloco de controle AREarthManager.EarthTrackingState.

var earthTrackingState = EarthManager.EarthTrackingState;
if (earthTrackingState == TrackingState.Tracking)
{
  // camera_geospatial_pose contains geodetic location, rotation, and
  // confidences values.
  var cameraGeospatialPose = EarthManager.CameraGeospatialPose;
}

Se AREarthManager.EarthTrackingState não se tornar TrackingState.Tracking, AREarthManager.EarthTrackingState poderá ser TrackingState.Limited ou TrackingState.None. Se nenhuma dessas condições for verdadeira, marque TrackingState.EarthTrackingState, que mostra outros estados de erro que podem impedir o rastreamento do objeto AREarthManager.

Ajustar a pose para mais precisão

Quando o dispositivo está na posição vertical na orientação padrão, os ângulos de inclinação (X+) e de rolagem (Z+) tendem a ser precisos devido a um alinhamento natural com rastreamento em RA. No entanto, os ângulos de guinada (Y+) podem variar dependendo da disponibilidade dos dados do VPS e das condições temporais no local. Talvez seja necessário fazer ajustes no app para garantir a precisão.

GeospatialPose.OrientationYawAccuracy fornece uma estimativa de precisão para os ângulos de guinada (Y+) de uma determinada AREarthManager.CameraGeospatialPose. A precisão da guinada de orientação é um número que descreve o raio, em graus, do nível de confiança do 68o percentil ao redor dos ângulos de guinada em GeospatialPose.EunRotation. Em outras palavras, há 68% de chance de que o ângulo de guinada real de AREarthManager.CameraGeospatialPose seja preciso dentro do número de graus retornados por GeospatialPose.OrientationYawAccuracy.

Valores maiores indicam menor precisão. Por exemplo, se o ângulo de guinada estimado for 60 graus e a precisão de guinada for 10 graus, haverá 68% de probabilidade de que o ângulo de guinada verdadeiro esteja entre 50 e 70 graus.

A seguir