我希望能够通过经纬度在地图上叠加机场间的大圆弧线段。我已经得到了初始和最终坐标之间的距离和方向,但现在需要生成曲线上的点以便绘制。我需要的是一个公式,该公式需要输入起点、终点和距离,并返回位于起点和终点路径之间的该距离处的点的纬度/经度。目前,我正在将地球近似为一个球体,并使用弧度 - 最终我将添加椭球体修正。
currlat = oldlat + d * sin (angle)/ (radius);
currlon = oldlon + d * cos (angle)/ (radius * cos(oldlat));
其中d是行驶距离,角度以弧度表示。这是在假设赤道和极点处地球周长均为40000公里的情况下进行的。您可以转换成弧度...
此外,它假定角度(方向)是相对于赤道线的。
显然,这需要椭球修正。
如果你向南走,sin值会变成负数,向北走则会变成正数。如果你向西走,cos值会变成负数,向东走则会变成正数。
d * sin(angle)和d * cos(angle)给出了变化量。然后你可以根据地球周长的比例尺计算新的纬度/经度。
currlat=oldlat+(d*sin(angle)*R)/40000
,其中R是地球半径(以公里为单位),2*Pi通过将旅行距离从rads转换为km而被取消了,即d(km)=(d(rads)/2*pi)*R
。 - Nathancurrlat = oldlat + d * sin (angle) * 2 * pi / (circumference_across_poles);
可以简化为currlat = oldlat + (d * sin (angle)/ (地球半径));
,因为 _周长=2Pi*R_,其中 _R=地球半径_。 - Nathan