【问题标题】:How to calculate the angle between three points based on Latitude/Longitude如何根据纬度/经度计算三点之间的角度
【发布时间】:2013-06-23 01:39:18
【问题描述】:

下面是从谷歌地图捕获的地图。我想计算角度ABC。我有三个点的坐标(纬度/经度)。

有什么方法可以解决我的问题吗?

谢谢

【问题讨论】:

  • Wkipedia 页面 -- en.wikipedia.org/wiki/… -- 包含解决问题的公式,无论您是平面地球还是球形地球。

标签: google-maps math geometry


【解决方案1】:

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

computeHeading(from:LatLng, to:LatLng) |号码 |将航向从一个 LatLng 返回到另一个 LatLng。航向在 [-180,180) 范围内从北顺时针以度数表示。

两者之间的角度将是两个标题之间的差异。

this answer 中使用computeHeading 的示例

【讨论】:

    【解决方案2】:

    您可以使用law of cosines 来近似角度。我说近似值是因为地球的曲率会对计算产生一些非零影响。

    在您的示例中,计算点之间的距离就足够了,然后对余弦定律执行适当的操作。参考余弦定律wiki文章applications中的第二个公式和对应的图片。

    【讨论】:

    • 如果您对角度的“符号”不感兴趣,这很有效,这通常很重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2012-01-26
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多