已知兩點經緯度,求兩點間距離(弧形,地球視爲規則球體)
正好最近整論文遇到這個問題,發現很多博客沒有寫明原理,或者有錯誤的地方,整理於此處,作筆記保存。
注:計算中所有角均爲弧度
如圖:
其中:E爲點B所在緯線圈的圓心C爲與A點緯度相同,與B點經度相同的點;H爲A、C所處緯線圈的圓心;連接BC並延長與OH相交與F;
A(Wa,Ja),B(Wb,Jb),其中,W爲緯度,J爲經度。
欲求A,B間距離(弧形),故要求出在扇形OAB中的∠AOB的弧度,可用 L = 2πR*(∠AOB/2π)=R*∠AOB
即求出∠AOB的度數即可求出距離。
欲求∠AOB的度數,可以在三角形AOB中使用餘弦定理或正弦定理計算得:
三角形OAB爲等腰三角形,sin(∠AOB/2) = (AB/2)/R ==> ∠AOB = 2*arcsin(AB / 2R),此處分母爲 2R,使用正弦定理
問題轉化爲求 AB的直線長度:
在三角形ABC中,
AC與BC可以通過經緯度求得:
以經度爲例,在以H爲圓心的緯度圈上,∠CHA = | Ja - Jb | ,三角形ACH爲等腰三角形,可用餘弦定理求得AC,求BC同理。
在三角形ABF中有:
BE與CH可用已知條件求得
參考博客:
https://blog.csdn.net/weixin_44731100/article/details/89386978