这可能很难解释几何形状,所以我会小心拼写。这在标准 compas 应用程序和 CLLocationManager 中的数据中可见。
1)纵向手持手机时,假设俯仰角为0°
2) 当相机向上指向天空时(例如拍摄云的照片),俯仰角从 0° -> 90° 变化,其中 90 度是垂直向上。
3) 当手机向上倾斜(> 0 度并在“X”磁力计轴上旋转)并且手机处于大约(但不完全)45 度时,罗盘航向旋转 180 度。所以当相机仍然指向“N”时,指南针将报告“S”。
4) 对于下一个(大约)90 度,罗盘航向旋转 180 度。
航向的这种旋转对我来说是破坏性的,它与加速度计没有完全对齐。是否有关于使用 CLHeading 数据中的 RAW 数据(X、Y、Z)计算航向数据的好教程(我没有立即找到)?
最终结果是我希望指南针的方向始终与相机的方向一致。
最佳答案
您不能只依赖罗盘航向。请参阅此答案以了解您要查找的内容,尤其是 CMAttitude 对象的偏航属性以补偿您正在谈论的俯仰角: Compensating compass lag with the gyroscope on iPhone 4
关于iPhone 指南针显示错误的航向俯仰角 > 约 45°,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741550/