如何计算沿大圆给定距离的经度和纬度?

Nat*_*han 5 great-circle latitude-longitude

我想使用经度和纬度在地图上覆盖机场之间的大圆弧。我已经可以从初始和最终坐标获得距离和方位,但现在我需要在曲线上生成要绘制的点。

我想要的是一个公式,它采用出发地、目的地和距离,并返回位于出发地和目的地之间的路径上该距离处的点的纬度/经度。

我目前正在用球体并使用弧度来近似地球——最终我将添加球体校正。

Sid*_*ani 2

currlat = oldlat + d * sin (angle)/ (radius); 
currlon = oldlon + d * cos (angle)/ (radius * cos(oldlat));
Run Code Online (Sandbox Code Playgroud)

其中 d 是行驶距离,角度以弧度为单位。这是假设地球赤道和两极的周长均为 40000 公里。您可以转换为弧度...

它还假设角度(方向)是相对于赤道线的。

显然这需要球体校正。

如果向南,罪恶值将变为负值,向北,罪恶值将变为正值。如果你向西走,cos 会变成负数,向东走,它会变成正数。

d * sin(角度) 和 d * cos(角度) 为您提供变化。您只需在此基础上根据地球周长按比例计算新的纬度/经度即可。