2011-11-20 124 views
4

我想在地图上用经度和纬度叠加大圆弧。 我已经可以从初始坐标和最终坐标获得距离和方位,但是现在我需要生成曲线上的点以进行绘制。如何计算沿着大圆的给定距离的经度和纬度?

我想要的是一个公式,该公式将原点,目的地和距离作为参考,并返回位于原点和目的地之间的距离上的距离点的纬度/经度。

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

回答

2
currlat = oldlat + d * sin (angle)/ (radius); 
currlon = oldlon + d * cos (angle)/ (radius * cos(oldlat)); 

其中d是行进距离,角度是弧度。这是假设在赤道和两极在40000km的地球周围。你可以转换成弧度...

另外,它假定角度(方向)是以赤道线为参考。

显然这需要球体校正。

如果你去南方,罪的价值会变成负值,北方会变成正值。如果你去西部,cos会变成负值,东部会变成正值。

d * sin(角度)和d * cos(角度)给你改变。而你只是在这个基础上计算新的纬度/长度,以便与地球的圆周比例。

+0

谢谢你,但单位不匹配你会有拉德+拉德/公里我假设这里明智的路线是将拉德到公里的距离转换为公里取消单位?所以'currlat = oldlat +(d​​ * sin(angle)* R)/ 40000'其中R是以km为单位的地球半径,并且通过将从rads行驶的距离转换为km'd(km)= d(rads)/ 2 * pi)* R' – Nathan

+0

我认为问题在于x轴。所以你的d * cos(角度)应该是d * cos(角度)/(radius * cos(oldlat)) –

+0

修改了上面的答案,以解释在更高纬度处减少周长。在较小的距离上,这应该工作正常... –

相关问题