【发布时间】:2011-03-03 18:27:22
【问题描述】:
我有一个点 A (52.132781727864, -106,63492619991302)。从 A 点我想得到 B 点的经纬度,它在 A 点以南 5 公里处。
如何获得 B 点的经纬度?我正在用 Java 编写代码。
编辑:如果该点位于东南部,我该怎么办?
【问题讨论】:
-
我认为 ilya 给出了正确的答案(我假设公式是正确的)。要了解该理论,您可以在网上搜索地理坐标系
我有一个点 A (52.132781727864, -106,63492619991302)。从 A 点我想得到 B 点的经纬度,它在 A 点以南 5 公里处。
如何获得 B 点的经纬度?我正在用 Java 编写代码。
编辑:如果该点位于东南部,我该怎么办?
【问题讨论】:
5km 角度 = ((5 / (6371 * pi)) * 180) = 0.0449660803。这个数字应该从纬度中减去。经度保持不变。
PS。感谢 Carlos Heuberger 的更正。
【讨论】:
我强烈建议将GeoTools 用于地球表面几何形状,因为它会将地球视为椭球体(地球不是一个完美的球体)。特别是查看GeodeticCalculator,您在其中设置了起始位置和方向(方位角和距离),然后得到目标位置。
【讨论】:
将问题扩展到“如何找到具有给定纬度值、距离和方向的点的经度”,这里是较短距离(小于约 1000 公里)的近似值/p>
d = dist / 111.12 (1)
dlat = d * cos(dir)
latm = lat1 + dlat / 2
dlon = d * sin(dir) / cos(latm)
lat2 = lat1 + dlat
lon2 = lon1 + dlon
地点:
- lat1 和 lon1 - 起始坐标(北和东为正)
- dist - 以公里为单位的距离
- dir - 起始方向(2)
- lat2 和 lon2 - 结果坐标
(1)假设球形地球模型
(2) dir = 135° 东南部
【讨论】:
我曾经遇到过同样的问题。由于在我的情况下,原始数据在 UTM 中,因此产品只需要在给定的区域中工作,并且要添加的距离不是很大,我所要做的就是计算正弦和余弦,并将东和北添加到初始点
【讨论】: