Nat*_*han 5 great-circle latitude-longitude
我想使用经度和纬度在地图上覆盖机场之间的大圆弧。我已经可以从初始和最终坐标获得距离和方位,但现在我需要在曲线上生成要绘制的点。
我想要的是一个公式,它采用出发地、目的地和距离,并返回位于出发地和目的地之间的路径上该距离处的点的纬度/经度。
我目前正在用球体并使用弧度来近似地球——最终我将添加球体校正。
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(角度) 为您提供变化。您只需在此基础上根据地球周长按比例计算新的纬度/经度即可。