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

mrg*_*lin 3 iphone vector coordinates heading cllocation

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

谢谢!

Rob*_*ert 5

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

基本上,您需要以与磁偏角相反的方向旋转磁北向量 。

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

以下是您需要做的:

  1. 获取磁北向量。

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

  3. 现在计算/查找磁偏角(这取决于您在世界上的位置,并且它也随时间缓慢变化)。

  4. 将磁北向量绕重力向量旋转X 度(其中 -X = 磁偏角)。这将是棘手的部分,您需要复习一些 3d 触发器。