由经纬度计算距离公式
在地球表面,根据经纬度计算两点间距离通常有两种常见情况,分别对应不同公式: 近似公式(适用于距离较近,精度要求不高的情况) 假设地球为正球体,半径为 R RR(平均半径约为 6371km),已知两点的经纬度分别为 A ( φ 1 , λ 1 ) A(\varphi_1, \lambda_1)A(φ1,λ1) 和 B ( φ 2 , λ 2 ) B(\varphi_2, \lambda_2)B(φ2,λ2),其中 φ \varphiφ 表示纬度,λ \lambdaλ 表示经度。
两点在球面上的距离 d dd 近似计算公式为: d ≈ R ⋅ ( φ 1 − φ 2 ) 2 + ( λ 1 − λ 2 ) 2 ⋅ cos 2 φ 1 + φ 2 2 d \approx R \cdot \sqrt{(\varphi_1 - \varphi_2)^2 + (\lambda_1 - \lambda_2)^2 \cdot \cos^2\frac{\varphi_1 + \varphi_2}{2}}d≈R⋅(φ1−φ2)2+(λ1−λ2)2⋅cos22φ1+φ2 这里经纬度需使用弧度制,如果是角度制,要先将角度转换为弧度(弧度 = 角度×π 180 \frac{\pi}{180}180π)。
精确公式(更准确,但计算相对复杂) 利用球面三角学原理推导得出的精确公式,也叫 Haversine公式: a = sin 2 ( φ 2 − φ 1 2 ) + cos φ 1 ⋅ cos φ 2 ⋅ sin 2 ( λ 2 − λ 1 2 ) a = \sin^{2}\left(\frac{\varphi_2 - \varphi_1}{2}\right)+\cos\varphi_1 \cdot \cos\varphi_2 \cdot \sin^{2}\left(\frac{\lambda_2 - \lambda_1}{2}\right)a=sin2(2φ2−φ1)+cosφ1⋅cosφ2⋅sin2(2λ2−λ1) c = 2 ⋅ arctan 2 ( a , 1 − a ) c = 2 \cdot \arctan2\left(\sqrt{a},\sqrt{1 - a}\right)c=2⋅arctan2(a,1−a) d = R ⋅ c d = R \cdot cd=R⋅c 其中: a aa 是一个中间变量; c cc 是两点间的圆心角(弧度); d dd 是两点间的球面距离; R RR 为地球半径(平均半径约为 6371km ); φ 1 \varphi_1φ1,φ 2 \varphi_2φ2 为两点的纬度,λ 1 \lambda_1λ1,λ 2 \lambda_2λ2 为两点的经度,同样都需要用弧度制。
arctan 2 ( y , x ) \arctan2(y,x)arctan2(y,x) 是四象限反正切函数,它根据 x xx 和 y yy 的符号确定反正切值所在象限。
以上公式可以帮助我们计算地球上任意两点基于经纬度的距离。
在实际应用中,可根据具体需求选择合适的公式进行计算。