将应用的设置配置为使用 Geospatial API 后,您可以获取设备相机的 AREarthManager.CameraGeospatialPose
。此姿势在 AREarthManager
对象中管理,包含以下信息:
- 位置,以纬度和经度表示
- 海拔高度
- EUS 坐标系中与用户所面向的方向近似的方向,X+ 指向东,Y+ 指向上方,Z+ 指向南
检查跟踪状态
仅当 AREarthManager.EarthTrackingState
为 TrackingState.Tracking
时,地理空间值才有效。请务必将所有 Geospatial API 调用封装在 AREarthManager.EarthTrackingState
控制块中。
var earthTrackingState = EarthManager.EarthTrackingState;
if (earthTrackingState == TrackingState.Tracking)
{
// camera_geospatial_pose contains geodetic location, rotation, and
// confidences values.
var cameraGeospatialPose = EarthManager.CameraGeospatialPose;
}
如果 AREarthManager.EarthTrackingState
未变为 TrackingState.Tracking
,则 AREarthManager.EarthTrackingState
可能为 TrackingState.Limited
或 TrackingState.None
。如果以上两个条件都不满足,请检查 TrackingState.EarthTrackingState
,其中会显示可能会阻止 AREarthManager
对象跟踪的其他错误状态。
调整姿势以提高准确度
当设备在默认屏幕方向下处于竖直状态时,由于与 AR 跟踪自然对齐,倾斜度 (X+) 和旋转角度 (Z+) 往往很精确。但是,偏摆 (Y+) 角度可能因 VPS 数据可用性和位置的时间条件而异。您的应用可能需要进行调整,以确保准确性。
GeospatialPose.OrientationYawAccuracy
提供某个 AREarthManager.CameraGeospatialPose
的偏摆 (Y+) 角度的精确度估算值。方向偏航精度是一个数字,用于描述 GeospatialPose.EunRotation
中偏摆角周围第 68 个百分位置信度的半径(以度为单位)。也就是说,AREarthManager.CameraGeospatialPose
的真实偏摆角有 68% 的可能性会在
GeospatialPose.OrientationYawAccuracy
。
值越大表示准确率越低。例如,如果估算偏摆角度为 60 度,偏摆精度为 10 度,则真实偏摆角度在 50 度到 70 度之间的概率为 68%。
后续步骤
- 通过获取锚点的地理空间姿势来放置地理空间锚点。