Positionnement de coordonnees GPS
ads
Membre
Bonjour,
les maths ca commence a faire vieux chez moi
Voila je dois faire dessiner la position gps actuelle d'un iPhone sur une carte en SVG.
bien evidement les difficultes principales sont que d'une part les coordonnees GPS sont pas en metre et que ma carte en SVG n'a pas le meme point d'origine (0,0).
Donc l'idee qui me vient a l'esprit, c'est de mesurer en coordonnees GPS le point d'origine de la carte, ains que le point le plus ecarte de la carte. Appellons le point d'origine O et le point le plus eloigne A.
Ensuite si je me ballade avec mon gps sur un point I figurant sur la carte, le GPS me donne ces cordonnees (lat et long).
Le core Framework peut aussi me donner la differnce metrique entre deux coordonnees GPS, donc je peux savoir a combien de metre de O je suis (distance IO) et la meme chose pour IA.
Mon probleme est ensuite de savoir les coordonnes metriques de ma position (I) car on peut imaginer que I est l'intersection de rayon OI et celui de rayon IA, le seul probleme c'est que dans la majorite des cas, ces 2 cercles on 2 points d'intersections
Donc 2 problemes :
1 - Comment calculer les corrdonnes metriques de ces points d'intersection ?
2- Comment savoir a quel point correspond I ?
Si quelqu'un a une autre methode plus efficace , je suis prenneur aussi.
Merci
les maths ca commence a faire vieux chez moi
Voila je dois faire dessiner la position gps actuelle d'un iPhone sur une carte en SVG.
bien evidement les difficultes principales sont que d'une part les coordonnees GPS sont pas en metre et que ma carte en SVG n'a pas le meme point d'origine (0,0).
Donc l'idee qui me vient a l'esprit, c'est de mesurer en coordonnees GPS le point d'origine de la carte, ains que le point le plus ecarte de la carte. Appellons le point d'origine O et le point le plus eloigne A.
Ensuite si je me ballade avec mon gps sur un point I figurant sur la carte, le GPS me donne ces cordonnees (lat et long).
Le core Framework peut aussi me donner la differnce metrique entre deux coordonnees GPS, donc je peux savoir a combien de metre de O je suis (distance IO) et la meme chose pour IA.
Mon probleme est ensuite de savoir les coordonnes metriques de ma position (I) car on peut imaginer que I est l'intersection de rayon OI et celui de rayon IA, le seul probleme c'est que dans la majorite des cas, ces 2 cercles on 2 points d'intersections
Donc 2 problemes :
1 - Comment calculer les corrdonnes metriques de ces points d'intersection ?
2- Comment savoir a quel point correspond I ?
Si quelqu'un a une autre methode plus efficace , je suis prenneur aussi.
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour une petite surface, faire l'approximation que la terre est plane est acceptable. Surtout sur le latitude proche de l'équateur ou de nos positions. Plus proche des pôles c'est déjà autre chose, ainsi que sur une sorface plus grande (carte mondiale)
Car comme tu le sais sans doute, les latitudes et longitudes sont des degrés, pas des distances.
- Autant un changement d'un degré en latitude représente toujours la même distance, puisque cela te fait te déplacer sur un cercle (qui pour le coup représentent une longitude donnée) de centre le centre de la terre, dans tous les cas. Donc tu te déplaces de R*alpha (R étant le rayon de la terre).
- Mais un changement d'un degré en longitude, c'est autre chose, puisque tu te déplaces alors sur un cercle horizontal dont le centre est sur l'axe de rotation de la terre, mais à une hauteur dépendant de la latitude. Donc ce cercle a un rayon qui vaut certes le rayon de la terre au niveau de l'équateur, mais de plus en plus petit au fur et à mesure que tu te rapproches des pôles. Et du coup la distance R(lat)*alpha que tu parcoures en allant d'un point A(lat,long1) à un point B(lat,long2) dépend de cette latitude.
Et du coup tu te doutes que les calculs pour faire une correspondance entre les coordonnées GPS (qui dépendent d'ailleurs du référenciel GPS utilisé) et celles d'une carte plane ne sont pas aussi simples qu'ils n'y paraissent.
Maintenant, sur une petite zone du globe, tu peux considérer que la terre est plane et que faire une simple interpolation linéaire est bien suffisante. En supposant que ta carte est orientée Nord, il suffit donc de dire que Xcarte = a*Longitude+b et que Ycarte = c*Latitude+d. Tu prends 2 points quelconques de la carte (de préférence les plus éloignés possibles pour réduire les deltas dus aux erreurs de calculs) dont tu connais les coordonnées GPS (donc tu as deux couples (Xcarte,Ycarte) dont tu connais (Longitude,Latitude)) ce qui te donne quatre équations te permettant de trouver tes 4 inconnues a,b,c,d.
la carte en question fait mooins de 1kmx1km.
Justement, pas forcement, ca a une incidence sur tes calculs ?
Question a deux balles, si je rajoutes un 3eme point, est ce que du coup, c'est pas plus simple ?
Merci.
Strange, je ne recois plus les notifications de reponse cette semaine...
Car quand tu vas te déplacer sur l'axe Y de ton image ça va correspondre à des points dont la latitude sera différente... mais la longitude aussi, du coup, si ta carte est "de travers".
Mais bon, c'est pas impossible non plus, faut juste écrire les équations qui vont bien dans ce sens du coup.
X = a*Lat+b*Long+c
Y = d*Lat+e*Long+f
Autrement dit (X,Y) = M*(Lat,Long)+V, où M est une matrice 2x2 et V un vecteur 2x1