根据经纬度计算两点之间的距离---google计算公式推导

经纬度常用词   经度 longitude, 维度 latitude

图和解读来源网上资料,自我也进行一遍推导,有些地方会加入自己的一些理解,重新温故了之前学的三角函数,度,弧度,弧长的概念,记忆模糊的建议大家也去看看

说明:说明下面计算以弧度带入计算,如果获取的经纬度为角度需要转换为弧度计算

        (角度(360度)等于2pi*r/r(r为圆半径)等于2pi,所以一度等于pi/180)

        将地球看成一个球体,A(WA,JA)、B(WB,JB)两点分别为两个点的位置,其中W为纬度,J为经度,O为球心,球半径为R,过A点画出A的纬度圈并与B所在的经度相交与点C,分别过B、C两点做球心O所在直线 的垂线相交与E、H,点B做垂线与CH的延长线相交于点D,OH与BC延长线相交与点F。添加辅助线后的两点距离示意图如图所示。

根据经纬度计算两点之间的距离---google计算公式推导_第1张图片

由示意图可知, H、E分别为A、B两点所在纬度圈的圆心,C点为与A点纬度相同,与B点经度相同,F为BC与HE延长线的交点,△HCF∽△DCB,对角平行函数,因此:

因为△AHF为直角三角形,所以

AF^2 = AH^2 + HF^2 (原文错误)                                (3)

由于A、C点在同一个纬度圈上,所以

AH = CH                                                                      (4)

设∠ACF为α,则设∠ACB为π-α,根据(余弦定理)这个很重要,得:

 

综上则可以得出:

 

说明为得出7公式,需要由5推导出cosa,过程中使用了1,2,3,4,10,11等,cosa带入6中得出公式7

补充公式:

BC^2 - BD^2 = CD^2                                   (10)

CH + CD = HD = BE                                    (11)

根据A、B两点经纬度可知:

说明此处推导需要结合(余弦定理)

根据经纬度计算两点之间的距离---google计算公式推导_第2张图片

带入公式(7),化简得

外说明,我推导过程中都呆着地球半径R,公式中没体现,应该是当作1常量处理了(最后的结果R会抵消,最终结果一致),后续乘以地球半径 6378.137 (单位KM)

AB弧长(AB两点的距离)为:解读说明AB弧长等于弧度乘以圆半径R,弧度则为(sin弧度)的反函数arcsin值

对(8)进行化简,得

也附图一张自己的手算吧

根据经纬度计算两点之间的距离---google计算公式推导_第3张图片

原文:https://blog.csdn.net/xiejm2333/article/details/73297004

同样感谢作者推导

 

你可能感兴趣的:(管理开发)