Ответ 1
Если вы не хотите использовать значение trueHeading
и считаете, что компас идеально расположен горизонтально, заголовок может быть вычислен следующим образом:
- (y > 0) heading = 90 - atan2 (x, y) * 180/pi
- (y < 0) heading = 270 - atan2 (x, y) * 180/pi
- (y = 0, x < 0) заголовок = 180,0
- (y = 0, x > 0) заголовок = 0.0
(это из http://www.magneticsensors.com/datasheets/an203.pdf)
... плюс заголовок должен быть скорректирован для Магнитное отклонение и Магнитное склонение
если компас не является горизонтальным, вы должны использовать только горизонтальный компонент (вы не можете игнорировать ось z), проецируя вектор (x, y, z) на плоскость, параллельную поверхности земли, а затем вычислить заголовок из этих проецируемых x и y.
Надеюсь, что это поможет.