Geospatial API を使用するようにアプリの設定を構成したら、ArEarth_getCameraGeospatialPose
を呼び出して、最新のフレーム内のカメラのデバイスのジオ空間位置情報を記述する ArGeospatialPose
を取得できます。このポーズは ArEarth
オブジェクトで管理され、次の情報を含みます。
- 緯度と経度で表した位置情報
- 標高
- EUS 座標系におけるユーザーの向きとほぼ同じ向き(X+ が東、Y+ が上、Z+ が南向き)
荷物追跡ステータスを確認する
地理空間値は、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
のいずれかです。上記のいずれの条件にも該当しない場合は、ArEarth.ArEarthState
を確認します。ここには、ArEarth
オブジェクトのトラッキングを妨げる可能性のあるその他のエラー状態が表示されます。
ポーズを調整して精度を高める
デバイスをデフォルトの向きで正面を向けた状態では、AR トラッキングと自然に調整されるため、ピッチ(X+)とロール(Z+)の角度は正確になります。ただし、ヨー(Y+)角度は、VPS データの可用性とその場所の天候条件によって異なる場合があります。精度を高めるために、アプリによる調整が必要になる場合があります。
ArGeospatialPose_getOrientationYawAccuracy()
は、特定の ArGeospatialPose
のヨー(Y+)角度の精度推定値を提供します。向きのヨーの精度は、ArGeospatialPose_getEastUpSouthQuaternion()
から返されたヨー角度の周囲の 68 パーセンタイル信頼区間の半径(度)を表す数値です。つまり、ArGeospatialPose
の真のヨー角度が正確である確率は 68% です。
値が大きいほど精度が低くなります。例えば、推定ヨー角が 60 度でヨー精度が 10 度の場合、真のヨー角が 50 度と 70 度の間である確率は 68% です。
次のステップ
- アンカーの地理空間ポーズを取得して、地理空間アンカーを配置します。