【问题标题】:What is initial bearing and final bearing什么是初始轴承和最终轴承
【发布时间】:2019-05-15 07:48:51
【问题描述】:

我正在尝试计算this link 中给出的两个纬度/经度点之间的方位角。我看到我们最初使用下面的等式得到的方位是初始方位。

    public static double GetBearing(double latitude1, double longitude1, double latitude2, double longitude2)
        {
            var lat1 = ToRadians(latitude1);
            var lat2 = ToRadians(latitude2);
            var longdiff = ToRadians(longitude1 - longitude2);
            var X = Math.Cos(lat2) * Math.Sin(longdiff);
            var Y = Math.Cos(lat1) * Math.Sin(lat2) - Math.Sin(lat1) * Math.Cos(lat2) * Math.Cos(longdiff);
            var bearing =ToDegrees(Math.Atan2(X, Y));
            return (bearing+360)%360;
        }

假设

对于最终方位,只需将初始方位从终点取到起点并将其反转(使用 θ = (θ+180) % 360)。

我对初始方位和最终方位之间的区别感到困惑。 这个初始方位和最终方位是什么,我们应该将哪个方位作为两点之间方位的最终答案。

【问题讨论】:

    标签: gis geospatial spatial spatial-data


    【解决方案1】:

    方位角是沿最短路径到目的地的方向与朝北方向之间的角度。我们有初始和最终的原因是我们生活在球体上,所以最短的路径是测地线。它是地球上的一条直线,如果你在平面地图上画它,它会是一条曲线。

    有两种思考方式。在平面地图上思考:当你从 A 到 B 时,这条曲线会稍微改变方向,所以这条线与北的夹角会发生变化,即方位发生变化。

    或者您可以考虑球体,然后考虑三角形 A - B - 北极。方位角为 AB 与相应子午线之间的夹角。初始方位是AB和经线A的夹角,最后是AB和经线B的夹角。它们是不同的。

    只有当 A 和 B 之间的距离很短时,单一的“最终答案”方位才有意义。那么地球的曲率就没有多大关系了,初始方位和最终方位非常接近,所以根据需要的精度可以说是单方位。

    【讨论】:

    • 很好的解释。谢谢!!
    【解决方案2】:

    仅供参考:轴承和许多相关计算在 R 包中实现 geosphere bearing 函数返回初始方位,但您可以反转坐标以获得最终方位。

    library(geosphere)
    bearing(cbind(0,0),cbind(20,20))
    #[1] 43.4035
    finalb <- bearing(cbind(20,20),cbind(0,0)) 
    (finalb + 180) %% 360
    #[1] 46.9656
    

    (这些结果应该比你用你参考的算法得到的更精确)

    【讨论】:

    • 还有一个finalBearing函数可以用来代替倒置坐标。
    猜你喜欢
    • 2022-01-18
    • 2017-11-06
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多