iPhone指南针呈现错误的航向俯仰角>大约45°

Ste*_*yes 8 iphone magnetometer ios compass-geolocation

这可能很难解释几何,所以我会小心拼写它.这在标准compas应用程序和CLLocationManager中的数据中可见.

1)当纵向握住手机时,请考虑俯仰角为0°

2)当将摄像机指向天空(例如拍摄云层照片)时,俯仰角度从0° - > 90°,其中90度是直线向上.

3)当手机向上倾斜(> 0度并在"X"磁力计轴上旋转)时,当手机处于大约(但不完全)45度时,指南针前进180度旋转.因此,当相机仍为"N"点时,指南针将报告"S".

4)对于下一个(大致)90度,罗盘航向旋转180度.

标题的这种旋转对我来说是破坏性的,并且它与加速度计不完全对齐.使用CLHeading数据中的RAW数据(X,Y,Z)来计算航向数据是否有一个很好的教程(我没有找到一个)?

最终的结果是我希望指南针的标题始终与相机的标题相匹配.

Dun*_*age 2

您不能仅依赖指南针方向。请参阅此答案以了解您要寻找的内容,特别是 CMAttitude 对象的 yaw 属性,以补偿您正在谈论的俯仰角: Compensating compassing compass lag with the gyrograph on iPhone 4

  • 不完全的。我已经在做补偿了。当设备处于纵向状态时,我需要进行二次补偿。当 UIDeviceOrientation 为纵向(正常或倒置)时,当倾斜大于 45 度时,Heading 会跳跃 180 度。 (2认同)