Geospatial API를 사용하도록 앱 설정을 구성한 후 ArEarth_getCameraGeospatialPose
를 호출하여 최신 프레임에서 카메라의 기기 위치정보를 나타내는 ArGeospatialPose
를 가져올 수 있습니다. ArEarth
객체에서 관리되는 이 포즈에는 다음 정보가 포함됩니다.
- 위도 및 경도로 표현된 위치
- 고도
- X+가 동쪽을 가리키고 Y+가 위쪽을 가리키며 Z+가 남쪽을 가리킴으로 사용자가 EUS 좌표계에서 향하는 방향과 가까운 방향
추적 상태 확인
지리 공간 값은 ArEarth.ArTrackingState
가 ArTrackingState.AR_TRACKING_STATE_TRACKING
이고 ArEarth.ArEarthState
이 AR_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.ArTrackingState
가 ArTrackingState.AR_TRACKING_STATE_TRACKING
가 되지 않으면 ArEarth.ArTrackingState
는 AR_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%입니다.
다음 단계
- 앵커의 지리정보 포즈를 가져와 지리정보 앵커를 배치합니다.