После того как вы настроили параметры своего приложения для использования Geospatial API, вы можете вызвать Earth.getCameraGeospatialPose()
, чтобы получить GeospatialPose
, который описывает геопространственное положение устройства для камеры в последнем кадре. Эта поза, управляемая в объекте Earth
, содержит следующую информацию:
- Местоположение, выраженное в широте и долготе
- Высота
- Ориентация, приблизительно равная направлению, в котором смотрит пользователь в системе координат EUS, где X+ указывает на восток, Y+ указывает вверх, а Z+ указывает на юг.
Проверьте состояние отслеживания
Геопространственные значения действительны только в том случае, если Earth.TrackingState
имеет значение TrackingState.TRACKING
. Обязательно оберните все вызовы Geospatial API в блок управления Earth.TrackingState
.
Ява
if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) { GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose(); // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Котлин
if (earth.trackingState == TrackingState.TRACKING) { val cameraGeospatialPose = earth.cameraGeospatialPose // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Если Earth.TrackingState
не становится TrackingState.TRACKING
, Earth.TrackingState
может быть TrackingState.PAUSED
или TrackingState.STOPPED
. Если ни одно из этих условий не верно, проверьте Earth.Earthstate
, который показывает другие состояния ошибок, которые могут препятствовать отслеживанию объекта Earth
.
Отрегулируйте позу для точности
Когда устройство находится в вертикальном положении в ориентации по умолчанию, углы наклона (X+) и крена (Z+) имеют тенденцию быть точными благодаря естественному выравниванию с отслеживанием AR. Однако углы отклонения (Y+) могут варьироваться в зависимости от доступности данных VPS и временных условий в месте расположения. Возможно, вашему приложению придется внести коррективы для обеспечения точности.
GeospatialPose.getOrientationYawAccuracy()
предоставляет оценку точности углов отклонения (Y+) для определенного GeospatialPose
. Точность отклонения от курса ориентации — это число, которое описывает радиус в градусах уровня достоверности 68-го процентиля вокруг углов отклонения от курса, возвращаемых из GeospatialPose.getEastUpSouthQuaternion()
. Другими словами, существует 68% вероятность того, что истинный угол отклонения GeospatialPose
является точным.
Большие значения указывают на меньшую точность. Например, если расчетный угол отклонения от курса составляет 60 градусов, а точность отклонения от курса составляет 10 градусов, то существует 68% вероятность того, что истинный угол отклонения от курса составляет от 50 до 70 градусов.
Что дальше
- Разместите геопространственную якорь , получив геопространственную позу якоря.