方位角在 C 中使用两组坐标(纬度和经度)



我已经开始在c中研究自主遥控直升机。我需要帮助找到计算轴承精度的方法。我使用两组坐标(纬度和经度),一组是当前位置,另一组是目的地。我已将纬度和经度转换为十进制格式,因此....

40°58'19.86"N = 40.972183
74°14'52.74"W = 74.247983

任何人都可以向我展示 c 中的代码以查找我可以使用的方位角或公式吗?

我看过:http://www.movable-type.co.uk/scripts/latlong.html,当我将其转移到 C 时,结果毫无意义。

这是我尝试过的:

 double x = Sin(Longitude2 - Longitude1) * Cos(Latitude2);
 double y = Cos(Latitude1) * Sin(Latitude2) - Sin(Latitude1) * Cos(Latitude2) * Cos(Longitude2 - Longitude1);
 double heading = (Atan2(x, y) % 2 * 3.14159265) (180/3.14159265);
您是否在

计算之前将坐标从度数转换为弧度?

angleRad = 3.14159265 * angleDeg / 180;

bearing = Atan2(y, x);在那个网站。轴承应依次从弧度转换为度:

bearing = 180 * bearing / 3.14159265;如果最终出现负值:

bearing = bearing + 360;

我不知道如何使用上面的约定(带有"%")来编写它。

纬度 1 和经度 1 是观察点的坐标纬度 2 和经度 2 是目标点的坐标。

该网站的公式效果很好。

对于你正在考虑的非常小的区域,你可以假设世界是平的。如果您只需要在本地工作,则可以预先计算地面上纬度/纬度的值,以米(或英尺)为单位

然后只需将三角纬度/纬度转换为距离并执行正常的三角运算。

要将距离转换为纬度/纬度,您可以使用谷歌地球来测量它或如何将纬度或经度转换为米?

相关内容

  • 没有找到相关文章

最新更新