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% です。
次のステップ
- アンカーの地理空間のポーズを取得して、地理空間アンカーを配置します。