convertir des coordonnées GPS sur un plan 2D - Algo - Programmation
Marsh Posté le 24-08-2011 à 07:25:29
Ben si la portion du monde représentée dans ton plan est "petite" (par exemple une ville), alors une simple règle de trois suivie d'une translation devrait suffire non ? Si par contre ta carte est plus grande, il faut en plus connaître le type de projection qui a été utilisé pour la générer. C'est peut-être un poil plus coton.
Marsh Posté le 24-08-2011 à 08:18:41
Bonjour, bonjour leonhard,
Je ne sais pas, d'un côté, je vais recevoir "(Degrés, minutes, secondes) ; (Degrés , minute secondes)" et de l'autre j'ai des mètre ou des millimètres.
Peu importe la dimension du plan je dirais, non ?
Marsh Posté le 24-08-2011 à 08:26:35
En réalité, ma carte fait 1024*768 pixels.
Si je divise 1024 par 360*?*? et 768 par 90*?*? j'ai bon ?
Les ? c'est parce que je ne sais pas combien de minutes il y a dans un degré ni de seconde dans une minute en latitude ni en longitude.
Marsh Posté le 24-08-2011 à 13:11:01
Soluce ?
J'ai d'abord calculé, l'unité linéaire pour la longitude et la latitude :
Lon_Unit : Float := 1024.0/(360.0*60.0*60.0);
Lat_Unit : Float := 768.0/(180.0*60.0*60.0);
Après j'ai fait :
if degr_long >= 0.0 then
X := 512.0 + Float(Degr_Lon) * (3600.0*Lon_unit) + Float(Minu_Lon) * (60.0* Lon_Unit) + Float(Seco_Lon) * Lon_Unit;
else
X := 512.0 - ((Float(Degr_Lon)*(-1.0)) * (3600.0*Lon_unit) + Float(Minu_Lon) * (60.0* Lon_Unit) + Float(Seco_Lon) * Lon_Unit);
End if;
Pareil pour la latitude.
Marsh Posté le 24-08-2011 à 16:26:12
oui c'est ça , il faut transformer les degrés minutes secondes en degrés décimaux (ou tout en secondes d'arcs comme tu as fait, mais attention quand même aux erreurs d'arrondis avec les Float. Mais tu n'as résolu qu'une partie du problème.
Hypothèse numéro 1 : ta carte représente une petite région, une ville par exemple. Dans ce cas, il faudra considérer que le point (0;0) de ta carte n'est pas le point (0;0) de tes coordonnées, il faudra donc soustraire les coordonnées de l'origine (un peu comme tu as commencé de le faire).
Hypothèse numéro 2 : ta carte représente la planète entière (ou un continent). Dans ce cas il faut voir la méthode de projection (regarde sur Wikipédia, y'a des trucs amusants). Pour t'expliquer le problème, imagine que tu te promène sur le cercle arctique. Le chemin que tu devras parcourir est bien plus court que si l'envie te prennais de faire le tour de la Terre au niveau de l'équateur. Donc pour mettre tout ça sur une carte rectangulaire, faut déformer un peu les choses.
Ah encore un truc, suivant la provenance de ta carte, le point (0;0) n'est pas forcément au centre. Les européens ont tendance à mettre l'Europe au milieu, mais les autres continents font parfois la même chose pour chez eux.
Marsh Posté le 24-08-2011 à 16:34:17
leonhard a écrit : |
En effet ma carte est une carte du globe entier.
Mais là, déformer les choses... Je vais pas savoir faire...(Je suis assai mauvais en math).
leonhard a écrit : |
La longitude GPS 0°0'0" n'est pas toujours Greenwich ? Ca dépends de la norme GPS utilisée ?
Merci en tout cas pour ton aide.
Marsh Posté le 23-08-2011 à 17:55:10
Bonjour
J'ai un plan 2D, de dimension 1024.0*768.0.
Je voudrais placer des points sur ce plan à partir de coordonnées GPS.
Faut que je face une conversion, vous auriez pas un papier la dessus ?
S'il vous plaît, merci.
Contexte :
Le système de coordonnées terrestres comprend 2 composantes à savoir :
*
La latitude : C'est la valeur angulaire du point dans l'axe Nord-Sud. Elle vaut 0° à l'équateur, - 90° au pole sud et +90° au pole nord.
*
La longitude : C'est la valeur angulaire du point dans l'axe Ouest-Est. Elle vaut 0° sur le méridien de GreenWich varie d'Ouest en Est de -180° à +180°
Message édité par Profil supprimé le 23-08-2011 à 18:13:51