【发布时间】:2011-07-15 15:09:48
【问题描述】:
我知道如何获取磁航向的坐标:heading.x、heading.y、heading.z 问题是我需要 trueHeading 的 (x, y, z)-vector。如何创建这个向量?
谢谢!
【问题讨论】:
标签: iphone vector coordinates cllocation heading
我知道如何获取磁航向的坐标:heading.x、heading.y、heading.z 问题是我需要 trueHeading 的 (x, y, z)-vector。如何创建这个向量?
谢谢!
【问题讨论】:
标签: iphone vector coordinates cllocation heading
编辑:我已经改变了很多我的答案......
基本上,您需要将磁北矢量向与Magnetic Declination 角度相反的方向旋转。
困难的部分是您需要在水平面上旋转矢量。为此,您需要知道手机的方向。
这是你需要做的:
获取磁北矢量。
从加速度计获取重力矢量。
现在计算/查找磁偏角(这取决于您在世界的哪个位置,而且它也会随着时间缓慢变化)。
Rotate 磁北矢量关于重力矢量的 X 度(其中 -X = 磁偏角)。这将是棘手的部分,您需要重新学习一些 3d 触发器。
【讨论】:
感谢您的编辑...有趣,这正是我当时所做的。我取了磁北向量,并用一个围绕重力向量的旋转矩阵旋转它,并在磁航向和真航向之间变化。
问题是在这种情况下我依赖于磁矢量。 在某些情况下,我注意到磁矢量变得非常疯狂,传感器提供了奇怪的值。
所以我想要的是获得独立于磁矢量的真航向矢量。好吧,多么愚蠢的想法 - 真正的航向很可能已经取决于磁航向。
但是 - 谢谢你的回答:)
【讨论】: