기기 카메라의 지리 공간 포즈를 가져옵니다.

Geospatial API를 사용하도록 앱 설정을 구성한 후에는 ArEarth_getCameraGeospatialPose를 호출하여 최신 프레임에서 카메라에 관한 기기의 지리정보 위치를 설명하는 ArGeospatialPose를 가져올 수 있습니다. ArEarth 객체에서 관리되는 이 포즈에는 다음 정보가 포함됩니다.

  • 위치(위도 및 경도로 표시)
  • 고도
  • X+가 동쪽을 가리키고 Y+가 위쪽을 가리키고 Z+가 남쪽을 가리키는 EUS 좌표계에서 사용자가 향하고 있는 방향에 가까운 방향입니다.

추적 상태 확인

지리정보 값은 ArEarth.ArTrackingStateArTrackingState.AR_TRACKING_STATE_TRACKING이고 ArEarth.ArEarthStateAR_EARTH_STATE_ENABLED인 경우에만 유효합니다. 모든 Geospatial API 호출은 ArEarth.ArTrackingState 제어 블록에 래핑해야 합니다.

if (ar_earth != NULL) {
  ArTrackingState earth_tracking_state = AR_TRACKING_STATE_STOPPED;
  ArTrackable_getTrackingState(ar_session, (ArTrackable*)ar_earth,
                               &earth_tracking_state);
  if (earth_tracking_state == AR_TRACKING_STATE_TRACKING) {
    ArGeospatialPose* camera_geospatial_pose = NULL;
    ArGeospatialPose_create(ar_session, &camera_geospatial_pose);
    ArEarth_getCameraGeospatialPose(ar_session, ar_earth,
                                    camera_geospatial_pose);
    // camera_geospatial_pose contains geodetic location, rotation, and
    // confidences values.
    ArGeospatialPose_destroy(camera_geospatial_pose);
  }
}

ArEarth.ArTrackingStateArTrackingState.AR_TRACKING_STATE_TRACKING가 되지 않는 경우 ArEarth.ArTrackingStateAR_TRACKING_STATE_PAUSED 또는 AR_TRACKING_STATE_STOPPED일 수 있습니다. 이러한 조건이 모두 충족되지 않으면 ArEarth 객체가 추적되지 않도록 할 수 있는 다른 오류 상태를 보여주는 ArEarth.ArEarthState를 확인합니다.

포즈를 조정하여 정확도 높이기

기기가 기본 방향에서 수직인 경우 AR 추적과 자연스럽게 정렬되어 피치 (X+) 및 롤 (Z+) 각도가 정확한 경향이 있습니다. 그러나 요 (Y+) 각도는 VPS 데이터 가용성과 위치의 시간적 조건에 따라 달라질 수 있습니다. 앱에서 정확도를 높이기 위해 조정해야 할 수 있습니다.

ArGeospatialPose_getOrientationYawAccuracy()은 특정 ArGeospatialPose의 요 (Y+) 각도의 정확도 추정치를 제공합니다. 방향 요 정확성은 ArGeospatialPose_getEastUpSouthQuaternion()에서 반환된 요 각도 주변의 68번째 백분위수 신뢰 수준의 반경을 도 단위로 설명하는 숫자입니다. 즉, ArGeospatialPose의 실제 요각이 정확할 확률은 68% 입니다.

값이 클수록 정확도가 낮음을 나타냅니다. 예를 들어 추정된 요 각도가 60도이고 요 정확도가 10도이면 실제 요 각도가 50도에서 70도 사이일 확률이 68% 입니다.

다음 단계