【问题标题】:Javascript + Maths - get bearing of point A from B as shown on a standard mapJavascript + Maths - 从 B 获取点 A 的方位,如标准地图所示
【发布时间】:2020-05-20 11:07:11
【问题描述】:

使用下面的公式,我可以得到地球上两个位置之间的方位,但是当该角度用于显示EPSG:3857(墨卡托)地图上两点之间的方向时,该角度有时会偏离几度,导致图标指向错误的方向。

(Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI)

例如,如果我在地图上的两个位置之间画一条线并在其旁边放置一个图标(使用所述函数计算的方向),您会看到问题:图标应该顺时针旋转几度。我相信这是由地球的曲率引起的,因为根据点的位置,角度会偏离不同的量。

【问题讨论】:

    标签: javascript math bearing


    【解决方案1】:

    我可以使用以下公式解决此问题:

    function bearing(startLat, startLng, destLat, destLng) {
      return ((Math.atan2(0,1) - Math.atan2((destLat - startLat),(destLng - startLng)))*180/Math.PI+180) - 85
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      相关资源
      最近更新 更多