Ceci est en quelque sorte lié à une autre question que j'ai posée: Translate GPS coordinates to location on PDF Map. Cela m'a amené à ce point, maintenant je suis coincé sur les maths. Disons que j'ai un plan d'étage d'un bâtiment, j'ai pris des lectures de coordonnées GPS de chaque coin du bâtiment. Supposez également que le plan d'étage est aligné avec la latitude et la longitude. Comment convertir une coordonnée GPS en une position X, Y sur cette carte? Je n'arrive pas à bien comprendre les maths.Convertir les coordonnées GPS en coordonnées
Répondre
Let delta_long
et delta_lat
être les différences, en degrés, dans les coordonnées GPS des coins du bâtiment. Soit delta_x = 320
et delta_y = 480
(pieds, disons). Puis:
vertical_scale = delta_y/delta_lat
avec les pieds unités/degré de latitude
horizontal_scale = delta_x/(cos(latitude)*delta_long)
pieds unités/degré de longitude.
Le facteur cos(latitude)
compense la longueur variable de 1 degré de longitude lorsque l'on se déplace de l'équateur aux pôles. Nous pouvons supposer pour cette application que il ne changera pas sensiblement entre les extrémités nord et sud du bâtiment.
Ensuite, pour toute proximité (lat, long) points, soustraire au large des coordonnées du coin sud-ouest du bâtiment, et d'appliquer les échelles verticales et horizontales de la manière évidente pour localiser ce point par rapport à la disposition du bâtiment .
Ce que vous devez faire est de calculer les coordonnées ECEF du point lat/long:
La structure du bâtiment ne représente pas un système de coordonnées centré sur la terre, ce qui est très différent de ce que cherche christo16 (qui est plus proche d'une position topocentrique que géocentrique). –
Merci pour la bonne réponse. J'ai oublié de mentionner, le plan des coordonnées de l'iPhone est inversé, de sorte que (0,0) est dans le coin supérieur gauche de l'image d'échantillon. Comment cela affecte-t-il les calculs? – christo16
Il convient de mentionner que c'est la "projection équirectangulaire" http://en.wikipedia.org/wiki/Equirectangular_projection – INS
Donc, Jim, vous dites que 'x = (lon_origin - lon) * horizontal_scale' et' y = (lat_origin - lat) * vertical_scale', où lat_origin, lon_origin sont des coordonnées GPS du coin sud-ouest. Droite? –