2009-11-29 4 views
2

Je réalise que ce n'est potentiellement pas une question de programmation, mais c'est un problème que je continue à cogner dans un programmeur, donc je pense que d'autres ici pourraient avoir des connaissances utiles à partager.Déterminer la projection dans une carte donnée

J'ai une carte d'une région de la terre (il peut s'agir de an example) comment déterminer la projection utilisée dans la carte et comment puis-je transformer par programmation les coordonnées de latitude et de longitude en positions de pixels sur la carte? image.

Pour le moment, j'ai le code matlab pour ouvrir l'image et tracer la coord (x, y) résultante, mais je n'arrive pas à comprendre comment convertir lat/longs en x, y!

Toute aide serait grandement appréciée.

Répondre

0

Il se trouve que le calcul programatically la projection d'une carte est une tâche complexe de traitement d'image . La façon dont j'ai réussi à contourner ce problème consiste simplement à utiliser des cartes qui ont des projections bien définies - par exemple Google Maps utilise la projection Mercator, comme la plupart des cartes du Royaume-Uni (comme notre grille de référence britannique est basée sur Universal Transverse Mercator).

J'espère que cela aide quelqu'un d'autre!

0

Les coordonnées géographiques sont une variation des coordonnées sphériques. Vous pouvez les transformer en coordonnées normales:

x = r * sin(90 - lat) * cos(lon) 
y = r * sin(90 - lat) * sin(lon) 
z = r * cos(90 - lat) 

Ce n'est pas vraiment précis car la Terre n'est pas exactement une sphère. Selon le type de carte, il existe plusieurs façons d'obtenir des coordonnées 2D à partir de celles-ci. L'image peut être projetée depuis la sphère vers un cylindre ou deux plans.

Ces liens peuvent vous aider:

+0

Ce n'est pas toujours le cas - par exemple, n'importe quelle carte peut être Mercator Projection, Robinson Projection ou l'une de celles listées ici: http://www.radicalcartography.net/?projectionref. Mon problème est de déterminer * laquelle * de ces projections une image donnée est (évidemment vous pouvez le faire par inspection, mais c'est très laborieux et inefficace!) –

Questions connexes