2.3.5 大圆航线的反解

大圆航线的反解是指已知起点的经度和纬度,以及终点的经度和纬度,求大圆弧长和方位角。大圆航线的反解通常由球面三角余弦定理计算得到,或由向量法计算得到,尽管两种计算方法在数学原理上是精确的,但在计算机上前者存在不可靠的情况,例如,在处理cos(θ1-θ2)时,若θ1θ2的差值较小,则其舍入误差将对大圆弧长的精度造成较大的影响,进而影响大圆航线正解得到的终点的经度和纬度精度;而后者通过解方程组,需要考虑多种情况,不仅代码冗长而且计算效率低下。为了解决上述问题,可以使用Haversine公式(半正矢公式)对球面三角余弦定理进行改进。

Haversine公式定义如下:

img

θ=θrng,可得

img

利用半正矢公式计算大圆航线的反解,可得

img
img

式中,a'为中间变量。另外,还需要进行方位角计算:

img