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

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일 수 있습니다. 두 조건이 모두 false인 경우 ArEarth.ArEarthState를 선택합니다. 그러면 ArEarth 객체가 추적되지 못하게 하는 다른 오류 상태가 표시됩니다.

정확성을 위해 자세 조정

기기가 기본 방향으로 세워져 있으면 AR 추적과의 자연스러운 정렬로 인해 피치(X+) 및 롤(Z+) 각도가 정확한 경향이 있습니다. 그러나 요 (Y+) 각도는 VPS 데이터 가용성과 위치의 시간 조건에 따라 달라질 수 있습니다. 앱에서 정확성을 위해 조정해야 할 수도 있습니다.

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

값이 클수록 정확도가 낮습니다. 예를 들어 예상 요 각도가 60도이고 요 정확도가 10도인 경우 실제 요 각도가 50도에서 70도 사이일 확률은 68%입니다.

다음 단계