3

当我在 ARKit 场景中点击一个特定点时,我得到了X该点相对于我的设备位置YZ坐标(对吗?)我想知道该点在地球上的绝对位置,而不是只是相对于我的设备。

到目前为止,我的逻辑是获取设备的longitude, latitude, altitude, 航向(罗盘方向)和姿态(旋转),并据此计算点的绝对位置。

想知道是否有比这更简单的方法。

4

1 回答 1

3

ARKit 没有任何用于跟踪设备位置或将内容放置在“绝对”地理空间坐标中的功能。实际上这样做(并且做得好)是一个难题......但是有一些事情可以帮助你。

首先,检查ARSessionConfiguration worldAlignment设置。使用默认gravity选项时,x 和 z 方向是相对于您开始会话时设备的原始航向。从那里到达地理空间坐标几乎是不可能的。

但是使用该gravityAndHeading选项,轴被固定为北/南和东/西——ARKit 坐标系原点的位置仍然相对于设备在会话开始时的位置,但方向是绝对的。这为您转换到/从地理空间坐标提供了基础。

但仍然存在精度问题。ARKit 可以跟踪最远几米远的特征,精确到几毫米。Core Location 以几米的精度跟踪设备。所以,如果你有一个真实世界的功能并且你想在它上面放置虚拟内容......你可以将纬度/经度转换为 ARKit 空间中的位置,但是你可能会发现你的内容没有'' 真的排队不够近。

这不是一个无法解决的问题,但也不是一件容易的事。祝你好运!

于 2017-07-03T05:03:38.963 回答