2017-08-03 5 views
0

Je suis désolé de poser cette question car elle a été traitée plusieurs fois. J'ai lu beaucoup d'entre eux, mais j'ai toujours du mal à établir le lien avec mon cas.Convertir la latitude, la longitude entre deux points aux coordonnées x, y

J'ai deux coordonnées en latitude et longitude, et j'ai besoin de les cartographier sur un plan x-y (en mètres), l'un d'entre eux étant l'origine.

En utilisant une fonction de bibliothèque, j'ai pris la distance entre eux. J'essayé d'utiliser le théorème de Pythagore pour résoudre x et y:

d = distance entre les deux coordonnées

y = 111,320 * (lat2 - lat1)

x = sqrt (d^2 - y^2 Le problème est que ce n'est pas très précis, comme 111.320 est une moyenne en km et la distance entre lat2 et lat1 est en mètres (souvent moins de 10) qui fausse fortement le résultat.

Y a-t-il des façons plus précises de faire cela? Toute aide serait appréciée.

+0

Vous avez la distance, obtenez l'angle avec la fonction 'atan' puis ajoutez la distance cos (angle) * à PlaneX et la distance sin (angle) * à PlaneY. – Chris

+0

Le problème ici est que vous ne tenez pas compte de la courbure intrinsèque du système de coordonnées polaires sphériques. Ce que vous voulez beaucoup, c'est le * Mercator Projection *: http://mathworld.wolfram.com/MercatorProjection.html – meowgoesthedog

+0

J'ai trouvé une référence où ce problème semble être largement décrit, mais peut-être que vous avez également couru à travers celui-ci: http://www.movable-type.co.uk/scripts/latlong.html – gue

Répondre

1

Si la différence de latitude est pas grande, alors vous pouvez utiliser cette approximation pour la distance le long du parallèle:

dx = 111.111 * (lon2 - lon1) * Cos(AverageLatitude) 
+0

J'ai rencontré cette formule. Je suis préoccupé par le fait que 111.111 est une approximation en km, avec des taux d'erreur ~ 0.3. Cela ne veut-il pas dire que je pourrais être à 300 mètres de là? (mes distances ne sont que d'environ 10m). – dmr07

+1

Non, l'erreur pour la longueur de l'arc méridional est relative, donc l'erreur dans vos distances due à cette raison devrait être négligeable (millimètres) par rapport à d'autres raisons (erreurs de détection de coordonnées) – MBo

0

vous pouvez utiliser une implémentation simple de la transverese mercator projection avec une précision sub-millimétrique. il suffit d'ajuster la longitude d'origine et de fausse nord et est contre vos besoins.