当前位置:   article > 正文

根据经纬度计算两点之间的距离---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。添加辅助线后的两点距离示意图如图所示。

由示意图可知, 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两点经纬度可知:

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

带入公式(7),化简得

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

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

对(8)进行化简,得

也附图一张自己的手算吧

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

同样感谢作者推导

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/736621
推荐阅读
相关标签
  

闽ICP备14008679号