美文网首页程序员
GPS坐标系中的方位角计算

GPS坐标系中的方位角计算

作者: 程屁凹 | 来源:发表于2018-07-30 17:37 被阅读16次
    方位角计算示意图

    如上图所示,在已知两点 GPS 坐标的情况下,计算由这两点连成的直线与正北方的夹角。

    https://www.sunearthtools.com/cn/tools/distance.php网页中,提及了在 GPS 坐标系中计算距离和方位角的相关算法。关于方位角计算的描述如下:

    要确定从地球上两点之间的起点的方向,请使用以下公式:

    1. Δφ = ln( tan( latB / 2 + π / 4 ) / tan( latA / 2 + π / 4) )
    2. Δlon = abs( lonA - lonB )
    3. θ = atan2( Δlon , Δφ )

    Note:

    • ln = natural log
    • if Δlon > 180° then Δlon = Δlon (mod 180).
    • operation a mod n
    • function atan2(y, x)
    • the angles are in radians

    值得注意的是,在该算法中,所有的数值均要用弧度(Radian)表示。

    一个 Java 版本的实现可如下:

    public double getDirection(double lat1, double lon1, double lat2, double lon2) {
            lat1 = Math.toRadians(lat1);
            lat2 = Math.toRadians(lat2);
            lon1 = Math.toRadians(lon1);
            lon2 = Math.toRadians(lon2);
            double deltaFI = Math.log(Math.tan(lat2 / 2 + PI / 4) / Math.tan(lat1 / 2 + PI / 4));
            double deltaLON = Math.abs(lon1 - lon2) % 180;
            double theta = Math.atan2(deltaLON, deltaFI);
            return Math.toDegrees(theta);
    }
    

    相关文章

      网友评论

        本文标题:GPS坐标系中的方位角计算

        本文链接:https://www.haomeiwen.com/subject/zjofvftx.html