iPhone指南针显示错误的方向,俯仰角大于约45度。

8

这可能很难解释几何关系,所以我会仔细说明。在标准的compas应用程序中以及来自CLLocationManager的数据中可以看到。

1) 当手机处于纵向时,将俯仰角视为0°

2) 当将摄像头指向天空(例如拍摄云)时,俯仰角从0°变为90°,其中90度是垂直向上。

3) 当手机向上倾斜(> 0度并在“X”磁力计轴上旋转)并且当手机大约倾斜45度(但不完全时),指南针方向会旋转180度。 因此,尽管相机仍然指向“N”,但指南针将报告“S”。

4) 对于接下来的(大约)90度,指南针方向旋转了180度。

对我来说,这种方向的旋转是有害的,并且它与加速度计不完全对齐。 是否有一个好的教程(我一开始没有找到)可以使用CLHeading数据的原始数据(X、Y、Z)来计算heading数据?

最终结果是我希望指南针的 heading 始终与相机的 heading 匹配。


1
你是怎么解决这个问题的? - W.K.S
请问您解决了这个问题吗? - tagy22
1个回答

2

2
不完全正确。我已经在进行那个补偿了。当设备处于竖屏状态时,我需要进行第二次补偿。当UIDeviceOrientation为竖屏(正常或倒置)时,当俯仰角大于45度时,航向会跳转180度。 - Steven Noyes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接