如何将经/纬度坐标转换为地球表面上的NE米距离?
在地球表面进行一些平移(以米为单位)后,如何从参考点(大地测量中)获得新的大地测量坐标(纬度/经度),并且我还需要使用真实的地球椭球体模型进行计算,例如WGS84。
例如:
- 假设我的参考点为 10.32E,-4.31N
- ,那么我会平移 (3000,-2000) 米(即将点向东移动 3000 米,向南移动 2000 米在地球表面
- 我需要大地测量中的新点的坐标,
谢谢。
how do I get a new coordinate in geodetic (Lat/Lon) from a reference point (which is in geodetic) after some translation (in meters) on earth surface, and also I need to do the calculation using true earth ellipsoid model such as WGS84.
for example:
- suppose I have reference point of 10.32E, -4.31N
- then I do translation of (3000,-2000) meters ( which is move the point 3000 meters to east and 2000 meters to south on earth surface.
- then I need the coordinate of new point in geodetic.
thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
查看开源库 PROJ.4,您可以使用它来准确翻译地理坐标(纬度/经度)到投影坐标(米),然后再返回。在您的情况下,您可以投影到 WGS 84 / World Mercator (EPSG:3395),执行以米为单位进行翻译,然后取消投影回地理。
Have a look at the open-source library PROJ.4 which you can use to accurately translate geographic coordinates (lat/long) to projected coordinates (metres), and back again. In your case you can project into WGS 84 / World Mercator (EPSG:3395), perform the translation in metres, then un-project back to geographic.
找到答案:
http://www.movable-type.co .uk/scripts/latlong-vincenty-direct.html
来自:
Vincenty 直接公式 - T Vincenty,“测地线的正解和逆解
应用嵌套方程的椭球”,调查评论,第 XXII 卷第 176 期,1975
http:// www.ngs.noaa.gov/PUBS_LIB/inverse.pdf
found the answer :
http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html
from:
Vincenty direct formula - T Vincenty, "Direct and Inverse Solutions of Geodesics on the
Ellipsoid with application of nested equations", Survey Review, vol XXII no 176, 1975
http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf
此代码计算给定纬度/经度坐标的两点之间的距离(N 和 E)。您可以轻松地将其反转以达到您的目的。
看看
http中的
函数: //svn.mikrokopter.de/filedetails.php?repname=NaviCtrl&path=/tags/V0.15c/GPS.c
This code calculates the distance (N and E) between two points given lat/lon coordinates. You can easily reverse it for your purposes.
Take a look at function
in
http://svn.mikrokopter.de/filedetails.php?repname=NaviCtrl&path=/tags/V0.15c/GPS.c
您要么找到一些地理图书馆,要么自己做三角学。
无论如何,你应该更准确地提出你的问题。特别是你说:
您应该注意,向东移动3公里,然后向南移动2公里不同< /strong> 从向南移动 2 公里,然后向东移动 3 公里,因此通过偏移 (3000, -2000) 来调用它是不正确的。
You either find some geo-library, or do the trigonometry yourself.
In any case you should formulate your question more exactly. In particular you say:
You should note that moving by 3km to east and then 2km to south differs from moving 2km to south and then 3km to east. Those are not commutative actions. So that calling this by offsetting (3000, -2000) is incorrect.
下面是从苏黎世联邦理工学院的 原始版本稍作修改的 C++ 代码。该文件仅依赖于 Eigen 库(如果需要,可以通过编写矩阵乘法来消除一些琐碎的工作)自己发挥作用)。您可以使用 geodetic2ned() 函数将纬度、经度、海拔高度转换为 NED 坐标系。
Below is C++ code slighly modified from original version from ETH Zurich. The file only has dependency on Eigen library (which can be eliminated with some trivial work if required by writing matrix multiplication function yourself). You can use geodetic2ned() function to convert latitude, longitude, altitude to NED frame.