[SVG] Coordonnées GPS sur une map SVG...
Fermé
Toni-Peinoit
-
24 sept. 2009 à 10:57
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 - 2 oct. 2009 à 16:59
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 - 2 oct. 2009 à 16:59
A voir également:
- [SVG] Coordonnées GPS sur une map SVG...
- Coordonnées gps - Guide
- Lecteur svg - Télécharger - Divers Web & Internet
- Google map satellite gratuit - Guide
- Gps sans internet - Guide
- Coordonnées gps waze - Forum GPS
4 réponses
M@dien
Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
74
24 sept. 2009 à 11:12
24 sept. 2009 à 11:12
Bonjour,
le mieux est de créer une échelle de coordonnées.
C'est à dire de définir la plage de coordonnées GPS min et max que l'on a, et les replacer dans le SVG au moyen d'une fonction de type y = a*x+b
Je m'explique:
Dans la base de données, il y a bien une longitude minimum L_min et une longitude maximum L_max.
et bien il faut trouver les valeurs de a et b pour que, pour un SVG de 500px de large par exemple, on ai
0 = a* L_min + b
et
500 = a* L_max + b
Ce petit système d'équation suffira pour recadrer toutes les longitudes au bon endroit sur le SVG.
en faisant la même chose pour la latitude, tu peux avoir les deux fonctions permettant de lier latitude et longitude avec hauteur et largeur de ton SVG.
le mieux est de créer une échelle de coordonnées.
C'est à dire de définir la plage de coordonnées GPS min et max que l'on a, et les replacer dans le SVG au moyen d'une fonction de type y = a*x+b
Je m'explique:
Dans la base de données, il y a bien une longitude minimum L_min et une longitude maximum L_max.
et bien il faut trouver les valeurs de a et b pour que, pour un SVG de 500px de large par exemple, on ai
0 = a* L_min + b
et
500 = a* L_max + b
Ce petit système d'équation suffira pour recadrer toutes les longitudes au bon endroit sur le SVG.
en faisant la même chose pour la latitude, tu peux avoir les deux fonctions permettant de lier latitude et longitude avec hauteur et largeur de ton SVG.
Bonjour,
Je travaille également sur une SVG et je souhaiterais changer/charger une autre image à partir du moment où un certain niveau de zoom est atteint sur celle en court. Savez-vous comment est-ce que je peux faire et quelle techno utiliser? Du javascript ? XML ?
Merci d'avance
Je travaille également sur une SVG et je souhaiterais changer/charger une autre image à partir du moment où un certain niveau de zoom est atteint sur celle en court. Savez-vous comment est-ce que je peux faire et quelle techno utiliser? Du javascript ? XML ?
Merci d'avance
Bonjour M@dien,
Pourrais tu me donner un petit peu plus d'infos STP. Je travaille sur une carte dont les points sont stockés dans une BDD et en constants changements. L_min et L_max seraient alors tout le temps boulversés. Ca ne pose pas de problème ?
Merci
Pourrais tu me donner un petit peu plus d'infos STP. Je travaille sur une carte dont les points sont stockés dans une BDD et en constants changements. L_min et L_max seraient alors tout le temps boulversés. Ca ne pose pas de problème ?
Merci
M@dien
Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
74
2 oct. 2009 à 16:59
2 oct. 2009 à 16:59
@Cross: je ne sais pas du tout. il faut pouvoir détecter le niveau de zoom, et cela dépend de ton programme qui affiche le SVG. si le zoom est réalisé par une fonction javascript, il est possible de changer les images également par javascript je pense.
@MichJ: au lieu de gérer L_min et L_max par les valeurs minimales et maximales de la base de donnée, il faut aligner le bord de la carte SVG avec les coordonnées correspondantes.
Je m'explique, par un exemple. Prenons le cas de la carte de France. si les points sont tous inclus en france, il suffit de normer ton SVG selon les coordonnées de la France. Il faut avoir alors une carte SVG précise, sur laquelle on puisse connaître la longitude du bord gauche et la longitude du bord droit. une fois que tu as ces longitudes min et max, qui vont de -5 à 9 environ. si la carte fait 500px de large, alors il faut résoudre les équations suivantes:
0 = a* (-5) + b
500 = a* (9) + b
Ce qui donne a = 35.7 et b = 178.57.
Pour placer les points de la base de données, il faut donc appliquer la fonction x = 35.71* longitude + 178.57.
Par exemple, si on a un point avec la longitude 7, il sera placé à 428px du bord gauche.
@MichJ: au lieu de gérer L_min et L_max par les valeurs minimales et maximales de la base de donnée, il faut aligner le bord de la carte SVG avec les coordonnées correspondantes.
Je m'explique, par un exemple. Prenons le cas de la carte de France. si les points sont tous inclus en france, il suffit de normer ton SVG selon les coordonnées de la France. Il faut avoir alors une carte SVG précise, sur laquelle on puisse connaître la longitude du bord gauche et la longitude du bord droit. une fois que tu as ces longitudes min et max, qui vont de -5 à 9 environ. si la carte fait 500px de large, alors il faut résoudre les équations suivantes:
0 = a* (-5) + b
500 = a* (9) + b
Ce qui donne a = 35.7 et b = 178.57.
Pour placer les points de la base de données, il faut donc appliquer la fonction x = 35.71* longitude + 178.57.
Par exemple, si on a un point avec la longitude 7, il sera placé à 428px du bord gauche.