Bonjour,
Je travaille sur un projet dont le but est d'afficher dans un navigateur une carte (format SVG) avec certains pays d'Europe et d'y associer des points positionnés à partir de coordonnées géographiques (latitude/longitude). Mon prototype est en Javascript, mais le code final doit être implémenté en Flash/ActionScript par une autre personne.
Après maintes recherches, je ne suis pas parvenu à trouver la bonne formule pour positionner mes points par rapport à ma carte. Je viens donc chercher de l'aide sur ce forum.
Ma carte SVG est générée à partir de QuantumGIS (export via le composeur d'impressions). J'ai opté pour une projection "Google Mercator" étant donné qu'une partie des points qui seront affichés sur la carte seront issus de l'API Google Maps (les autres points sont issus de Geonames.org). [Note: J'utilise la "projection à la volée" dans QGIS.]
La carte est est accessible à l'adresse suivante: http://dl.free.fr/bL1gZhG1Y
Voici les paramètres d'emprise de la carte (tels qu'affichés dans le composeur d'impressions) :
minX = -2431126.322
maxX = 3142216.750
minY = 4724666.584
maxY = 8678727.548
Voici les informations que j'ai dans la balise <svg> du fichier SVG :
viewBox="0 0 3507 2480"
Voici un exemple de coordonnées que j'ai dans mon fichier XML (dans le cas présent, il s'agit des coordonnées de Paris) :
long="2.3488"
lat="48.85341"
Pour résumer, je pars des informations suivantes :
- longeur de l'image en pixels (3507)
- largeur de l'image en pixels (2480)
- bornes de la carte (longitudes/latitudes min. et max. en mètres et en radians) :
westLong = -2431126.322 / 12.21
eastLong = 3142216.750 / 18.57
northLat = 4724666.584 / 61.33
southLat = 8678727.548 / 40.88
- longitude du point en radians (2.3488)
- latitude du point en radians (48.85341)
Je ne sais pas si cette information peut également servir, mais QGis m'indique une échelle (1:23379138).
Je cherche donc les bonnes fonctions pour calculer les coordonnées X et Y à partir des données latitude / longitude pour chaque point.
Si nécessaire, je peux essayer de mettre le prototype sur http://jsfiddle.net/.
Je travaille sur un projet dont le but est d'afficher dans un navigateur une carte (format SVG) avec certains pays d'Europe et d'y associer des points positionnés à partir de coordonnées géographiques (latitude/longitude). Mon prototype est en Javascript, mais le code final doit être implémenté en Flash/ActionScript par une autre personne.
Après maintes recherches, je ne suis pas parvenu à trouver la bonne formule pour positionner mes points par rapport à ma carte. Je viens donc chercher de l'aide sur ce forum.
Ma carte SVG est générée à partir de QuantumGIS (export via le composeur d'impressions). J'ai opté pour une projection "Google Mercator" étant donné qu'une partie des points qui seront affichés sur la carte seront issus de l'API Google Maps (les autres points sont issus de Geonames.org). [Note: J'utilise la "projection à la volée" dans QGIS.]
La carte est est accessible à l'adresse suivante: http://dl.free.fr/bL1gZhG1Y
Voici les paramètres d'emprise de la carte (tels qu'affichés dans le composeur d'impressions) :
minX = -2431126.322
maxX = 3142216.750
minY = 4724666.584
maxY = 8678727.548
Voici les informations que j'ai dans la balise <svg> du fichier SVG :
viewBox="0 0 3507 2480"
Voici un exemple de coordonnées que j'ai dans mon fichier XML (dans le cas présent, il s'agit des coordonnées de Paris) :
long="2.3488"
lat="48.85341"
Pour résumer, je pars des informations suivantes :
- longeur de l'image en pixels (3507)
- largeur de l'image en pixels (2480)
- bornes de la carte (longitudes/latitudes min. et max. en mètres et en radians) :
westLong = -2431126.322 / 12.21
eastLong = 3142216.750 / 18.57
northLat = 4724666.584 / 61.33
southLat = 8678727.548 / 40.88
- longitude du point en radians (2.3488)
- latitude du point en radians (48.85341)
Je ne sais pas si cette information peut également servir, mais QGis m'indique une échelle (1:23379138).
Je cherche donc les bonnes fonctions pour calculer les coordonnées X et Y à partir des données latitude / longitude pour chaque point.
Si nécessaire, je peux essayer de mettre le prototype sur http://jsfiddle.net/.