如何基于纬度/经度计算三个点之间的角度

4
以下是从Google地图中捕获的地图。我想计算角ABC。我有三个点的坐标(纬度/经度)。
是否有任何方法解决我的问题?
谢谢 enter image description here

2
维基百科页面--http://en.wikipedia.org/wiki/Solution_of_triangles#Solving_spherical_triangles--包含了解决你的问题所需的公式,无论你是支持平面地球理论还是球体地球理论。 - High Performance Mark
2个回答

9
您可以使用Google Maps Javascript API v3中的google.maps.geometry.spherical.computeHeading方法在任意两点之间找到方向角:

computeHeading(from:LatLng, to:LatLng) | number | 返回从一个LatLng到另一个LatLng的方向角。方向角以度为单位,顺时针从北方开始,在范围[-180,180)内表示。

两者之间的角度将是两个方向角之间的差异。
例如,可以在此答案中使用computeHeading。

3
你可以使用余弦定理来近似计算角度。我说“近似”是因为地球的曲率会对计算产生一些非零影响。
在你的例子中,只需计算点之间的距离,然后对余弦定理进行适当的操作即可。请参考余弦定理应用wiki文章中的第二个公式和相应的图片。

如果您不关心角度的“符号”,那么这个功能可以很好地工作,而角度的“符号”通常是很重要的。 - FabienRohrer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接