Obtenir le nord magnétique d'un magnétomètre xyz (iPhone 3.0)
-
20-08-2019 - |
Question
Je republie en fait une question des forums de développement pour iphone. Je ne l'ai pas demandé, mais je l'ai trouvé en essayant de trouver sa réponse. Personne n’y ayant encore répondu, j’ai donc pensé essayer de le poster ici.
Merci d'avance pour toute aide!
Quelqu'un connaît-il des détails sur l'algorithme de calcul du cap magnétique à partir des valeurs xyz brutes de CLHeading? Je suis sûr qu’il doit exister une approche générale qui fonctionne également pour différents magnétomètres.
La solution
Si vous ne souhaitez pas utiliser la valeur trueHeading
et en supposant que la boussole soit parfaitement horizontale, le titre peut être calculé de cette manière:
- (y > 0) cap = 90 - atan2 (x, y) * 180 / pi
- (y < 0) cap = 270 - atan2 (x, y) * 180 / pi
- (y = 0, x < 0) cap = 180.0
- (y = 0, x > 0) cap = 0.0
(ceux-ci proviennent de http://www.magneticsensors.com/datasheets/an203.pdf )
... plus l'en-tête doit être corrigé pour déviation magnétique et Déclinaison magnétique
si la boussole n’est pas horizontale, vous devez utiliser uniquement la composante horizontale (vous ne pouvez pas ignorer l’axe z) en projetant le vecteur (x, y, z) sur un plan parallèle à la surface de la Terre, puis calculer le titre à partir de ces x et y projetés.
J'espère que ça aide.