mardi 19 mai 2009

Coordonnées Google Earth en coordonnées cartésiennes

Bonjour,
je suis actuellement en train de travailler sur un petit logiciel se basant sur les fichiers KML de Google Earth (permet d'exporter des polygones directement dessinés sur la Terre avec Google Earth par exemple), le problème est que les coordonnées sont en longitude/latitude (en degrés décimales).

Pour mon application je dois travailler en coordonnées cartésiennes (x,y). La géographie et la cartographie n'étant pas mon fort et mon métier, j'ai cherché un peu partout LA formule magique.

Pour qui ça intéresse j'en ai, à priori, trouvée une sur la Wikipedia en anglais (la version française est comme d'hab, pas assez détaillée...).

Voici la formule magique pour passer de GE au système cartésien :

chi=sqrt(1-e2 * sin(latitude)^2 )
x = (a/chi)*cos(latitude)*cos(longitude);
y = (a/chi)*cos(latitude)*sin(longitude);


NOTES :
  • sqrt veut dire racine carrée
  • ^2 veut dire au carré
  • x et y sont en mètres
  • latitude et longitude doivent êtres en RADIANS (faire gaffe : Google Earth donne les angles en degrés)
  • "a" et "e2" sont des constantes propres à la Terre et à la projection utilisée pour Google Earth (WGS84)
  • "a" est l'axe semi majeur de la Terre, a=6378137 m
  • "e2" = 2*f - f*f où "f" vaut pour la Terre : f=1/298.257223563
J'ai pas mis le calcul de la composante Z, je vous laisse le soins d'aller voir l'article Wikipedia.
J'ai testé la formule sur quelques points en France avec l'application Circé de l'IGN , ça l'air de très bien fonctionner (très bonne précision)

Magique non ? ...

Lien vers l'article Wikipedia : http://en.wikipedia.org/wiki/Geodetic_system#From_ENU_to_WGS-84:_sample_code

:)

Aucun commentaire:

Enregistrer un commentaire