2017-08-03 73 views
0

由于已经回答了好几次,所以我很抱歉问这个问题。我阅读了其中的很多内容,但我仍然无法与我的案例建立联系。将两点之间的经度,纬度转换为x,y坐标

我在经度和纬度上有两个坐标,我需要将它们映射到x-y平面上(以米为单位),其中一个坐标是原点。

使用库函数,我得到了它们之间的距离。我尝试使用勾股定理来解决x和y:

d = 2之间的距离的坐标

Y = 111.320 *(LAT2 - LAT1)

X = SQRT(d^2 - Y 1 2 )

问题是这不是很准确,因为111.320是以km为单位的平均值,lat2和lat1之间的距离是以米为单位(通常小于10),这严重扭曲了结果。

有没有更准确的方法来做到这一点?任何帮助,将不胜感激。

+0

你有距离,用'atan'函数得到角度,然后将cos(角度)*距离加到PlaneX上,并将sin(角度)*距离加到PlaneY上。 – Chris

+0

这里的问题是,你没有考虑到球形极坐标系统的固有曲率。你想要的是*墨卡托投影*:http://mathworld.wolfram.com/MercatorProjection.html – meowgoesthedog

+0

我发现一个参考,这个问题似乎被广泛地描述,但也许你也跑过了这个:http:///www.movable-type.co.uk/scripts/latlong.html – gue

回答

1

如果纬度之差并不大,那么你可以使用这个近似距离沿平行:

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

我碰到过这个公式。我担心111.111是以km为单位的近似值,误差率为0.3。这不是说我可以在300米以外。 (我的距离只有大约10米)。 – dmr07

+1

不,经线弧长的误差是相对的,所以由于这个原因造成的距离误差应该可以忽略不计(毫米)与其他原因相比(坐标检测误差) – MBo

相关问题