2017-07-03 130 views
2

当我点击ARKit场景中的一个特定点时,我得到了该点相对于设备位置的X,Y和Z坐标(对吗?)我想知道地球上的点的绝对位置,而不仅仅是相对于我的设备。到目前为止,我的逻辑是获取设备的经度,纬度,高度,航向(指南针方向)和姿态(旋转),并基于此计算点的绝对位置。想知道是否有比这更简单的方法。在ARKit中获取点的绝对位置

回答

3

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

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

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

但仍存在精度问题。 ARKit跟踪距离几米的地物,精确至几毫米。核心位置将设备追踪到几米的精度。因此,如果您拥有真实世界的功能,并且想要将虚拟内容放在其上,您可以将经纬度转换为ARKit空间的位置,但是您可能会发现自己的内容不会真的不够接近。

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