iPhone - CLHeading:如何将trueHeading转换为矢量

时间:2011-03-15 08:58:57

标签: iphone vector coordinates cllocation heading

我知道如何获得磁航向的坐标:heading.x,heading.y,heading.z 问题是我需要trueHeading的(x,y,z) - 向量。我该如何创建这个向量?

谢谢!

2 个答案:

答案 0 :(得分:4)

编辑:我已经改变了我的答案......

基本上你需要以与Magnetic Declination角度相反的方向旋转磁北向量。

困难的部分是你需要在水平面上旋转矢量。为此,您需要知道手机的方向。

以下是您需要做的事情:

  1. 获取磁北向量。

  2. 从加速度计获取重力矢量。

  3. 现在计算/查找磁偏角(它取决于你在世界的哪个位置,它也随着时间的推移而变化)。

  4. Rotate磁北矢量绕重力矢量X度(其中-X =磁偏角)。这将是一个棘手的部分,你将需要刷上一些3d trig。

答案 1 :(得分:0)

感谢编辑...好笑,这正是我当时所做的。我采用了磁北向量并用围绕重力向量的旋转矩阵旋转它,磁性高度和真正的高度之间存在变化。

在这种情况下,我依赖于磁矢量。 在某些情况下,我注意到磁矢量非常疯狂,传感器传递了奇怪的值。

所以我想要的是获得独立于磁矢量的trueHeading的矢量。好吧,多么愚蠢的想法 - 真正的标题最可能无论如何都取决于磁力标题。

然而 - 谢谢你的回答:)