取得裝置相機's 地理空間姿勢

設定應用程式使用 Geospatial API 後,您可以呼叫 Earth.getCameraGeospatialPose() 取得 GeospatialPose,說明裝置在最新影格中相機的地理空間定位。這個姿勢會在 Earth 物件中管理,並包含下列資訊:

  • 以經緯度表示的位置
  • 海拔高度
  • 方向大致上與使用者在 EUS 座標系統中面向的方向相同,其中 X+ 指向東方、Y+ 指向上方,而 Z+ 指向南方

查看追蹤狀態

地理空間值只有在 Earth.TrackingStateTrackingState.TRACKING 時才有效。請務必將所有 Geospatial API 呼叫包裝在 Earth.TrackingState 控制區塊中。

JavaKotlin
if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) {
  GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose();
  // cameraGeospatialPose contains geodetic location, rotation, and confidences values.
}
if (earth.trackingState == TrackingState.TRACKING) {
  val cameraGeospatialPose = earth.cameraGeospatialPose
  // cameraGeospatialPose contains geodetic location, rotation, and confidences values.
}

如果 Earth.TrackingState 未變成 TrackingState.TRACKINGEarth.TrackingState 可能會是 TrackingState.PAUSEDTrackingState.STOPPED。如果上述兩種情況都不成立,請檢查 Earth.Earthstate,這會顯示其他可能導致 Earth 物件無法追蹤的錯誤狀態。

調整姿勢以提高準確度

當裝置以預設方向直立時,由於 AR 追蹤會自然對齊,因此傾斜 (X+) 和滾動 (Z+) 角度通常會精確。不過,偏航角 (Y+) 可能會因 VPS 資料可用性和位置的時間條件而異。應用程式可能需要進行調整以提高準確度。

GeospatialPose.getOrientationYawAccuracy() 會針對特定 GeospatialPose提供偏航 (Y+) 角度的預估精確度。方向偏轉精確度是指 GeospatialPose.getEastUpSouthQuaternion() 傳回的偏轉角度周圍 68 百分位信心水準的半徑 (以度為單位)。換句話說,GeospatialPose 的實際偏航角正確的機率為 68%。

值越大,準確度越低。舉例來說,如果預估偏轉角度為 60 度,且偏轉精確度為 10 度,則實際偏轉角度介於 50 和 70 度之間的機率為 68%。

後續步驟