根据经纬度计算两点之间的距离---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
同樣感謝作者推導
?
總結
以上是生活随笔為你收集整理的根据经纬度计算两点之间的距离---google计算公式推导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KrakenD网关V1.0.0文档初步翻
- 下一篇: 微信 二维码生成