导航

由经纬度计算距离公式

发表时间:03-28 栏目: 育儿综合

在地球表面,根据经纬度计算两点间距离通常有两种常见情况,分别对应不同公式: 近似公式(适用于距离较近,精度要求不高的情况) 假设地球为正球体,半径为 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 的符号确定反正切值所在象限。

以上公式可以帮助我们计算地球上任意两点基于经纬度的距离。

在实际应用中,可根据具体需求选择合适的公式进行计算。

 

相关内容返回育儿综合列表...

猜你喜欢

上一篇

下一篇

Copyright ©育儿知识大全www.yuerzhishi.com