GPS坐标系中的方位角计算

GPS坐标系中的方位角计算_第1张图片
方位角计算示意图

如上图所示,在已知两点 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坐标系中的方位角计算)