Geospatial API を使用するようにアプリの設定を構成したら、Earth.getCameraGeospatialPose()
を呼び出して、最新のフレームにおけるカメラのデバイスの地理空間位置を示す GeospatialPose
を取得できます。このポーズは Earth
オブジェクトで管理され、次の情報を含みます。
- 緯度と経度で表した位置
- 標高
- EUS 座標系におけるユーザーの向きとほぼ同じ向き(X+ が東、Y+ が上、Z+ が南向き)
追跡ステータスを確認する
地理空間値は、Earth.TrackingState
が TrackingState.TRACKING
の場合にのみ有効です。すべての Geospatial API 呼び出しを Earth.TrackingState
コントロール ブロックでラップしてください。
Java
if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) { GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose(); // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Kotlin
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
オブジェクトのトラッキングを妨げる可能性のあるその他のエラー状態が表示されます。
ポーズを調整して正確に調整する
デバイスをデフォルトの向きでまっすぐに立てると、AR トラッキングと自然に調整されるため、ピッチ(X+)とロール(Z+)の角度は正確になります。ただし、ヨー(Y+)角度は、VPS データの可用性と場所の時間的条件によって変わる可能性があります。精度を高めるために、アプリによる調整が必要になる場合があります。
GeospatialPose.getOrientationYawAccuracy()
は、特定の GeospatialPose
のヨー(Y+)角度の精度推定値を提供します。向きのヨーの精度は、GeospatialPose.getEastUpSouthQuaternion()
から返されたヨー角度の 68 パーセンタイル信頼レベルの半径を度単位で表した数値です。つまり、GeospatialPose
の真のヨー角度が正確である確率は 68% です。
値が大きいほど精度が低いことを示します。例えば、推定ヨー角が 60 度でヨー精度が 10 度の場合、真のヨー角が 50 度と 70 度の間である確率は 68% です。
次のステップ
- アンカーの地理空間ポーズを取得して、地理空間アンカーを配置します。