从xyz磁力计(iPhone 3.0)获得磁北

时间:2009-06-28 14:23:07

标签: iphone objective-c magnetometer

我实际上正在重新发布iphone开发板的问题。我没有问过,但是在试图找到答案时我发现了它。还没有人在那里做出回应,所以我想我会尝试在这里发布。

提前感谢您的帮助!

有没有人知道有关从CLHeading的原始xyz值计算磁航向的算法的任何细节?我相信必须有一个通用的方法,适用于不同的磁力计。

1 个答案:

答案 0 :(得分:8)

如果您不想使用trueHeading值,并假设罗盘完全水平,则可以通过以下方式计算标题:

  • (y> 0)heading = 90 - atan2(x,y)* 180 / pi
  • (y <0)heading = 270 - atan2(x,y)* 180 / pi
  • (y = 0,x <0)heading = 180.0
  • (y = 0,x> 0)heading = 0.0

(这些来自http://www.magneticsensors.com/datasheets/an203.pdf

...加上标题必须更正Magnetic deviationMagnetic declination

如果罗盘不是水平的,你应该只使用水平分量(你不能忽略z轴),将(x,y,z)矢量投影到一个平行于地球表面的平面上然后从这个投影的x和y计算航向。

希望它有所帮助。