Sprawdź pozycję aparatu urządzenia w orientacji geoprzestrzennej

Po skonfigurowaniu w ustawieniach aplikacji korzystania z interfejsu Geospatial API możesz wywołać metodę Earth.getCameraGeospatialPose(), aby uzyskać kod GeospatialPose opisujący położenie geoprzestrzenne kamery w ostatniej ramce. Ta pozycja zarządzana w obiekcie Earth zawiera te informacje:

  • Lokalizacja wyrażona w długości i szerokości geograficznej
  • Wysokość
  • Orientacja w przybliżeniu kierunku, w którym znajduje się użytkownik w układzie współrzędnych EUS, z wartością X+ na wschód, Y + w górę, a Z+ na południe

Sprawdzanie stanu śledzenia

Wartości geoprzestrzenne są prawidłowe tylko wtedy, gdy Earth.TrackingState ma wartość TrackingState.TRACKING. Pamiętaj, aby umieścić wszystkie wywołania interfejsu Geospatial API w blok kontrolny 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.
}

Jeśli Earth.TrackingState nie zmieni się na TrackingState.TRACKING, Earth.TrackingState może mieć wartość TrackingState.PAUSED lub TrackingState.STOPPED. Jeśli żaden z tych warunków nie jest spełniony, sprawdź pole Earth.Earthstate, które wyświetla inne stany błędu, które mogą uniemożliwić śledzenie obiektu Earth.

Dostosuj pozycję, aby zwiększyć precyzję

Gdy urządzenie jest ustawione pionowo i w domyślnej orientacji, kąty nachylenia (X+) i przechylenia (Z+) zwykle są precyzyjne, ponieważ zapewnia to naturalny wyrównanie do śledzenia AR. Jednak kąty odchylenia (Y+) mogą się różnić w zależności od dostępności danych VPS i warunków czasowych w danej lokalizacji. Być może trzeba będzie wprowadzić poprawki w dokładności.

GeospatialPose.getOrientationYawAccuracy() podaje szacunkową dokładność kątów odchylenia (Y+) dla określonego elementu GeospatialPose. Dokładność odchylenia orientacji to liczba opisująca w stopniach promień 68. percentyla poziomu ufności wokół kątów odchylenia zwróconych z GeospatialPose.getEastUpSouthQuaternion(). Oznacza to, że istnieje 68% prawdopodobieństwa, że rzeczywisty kąt odchylenia obiektu GeospatialPose jest prawidłowy.

Większe wartości oznaczają mniejszą dokładność. Jeśli na przykład szacowany kąt odchylenia wynosi 60 stopni, a dokładność odchylenia wynosi 10 stopni, prawdopodobieństwo, że rzeczywisty kąt odchylenia wynosi od 50 do 70 stopni, wynosi 68%.

Co dalej