我正在設置一個小程序,從用戶獲取2個地理座標,然後計算它們之間的距離(考慮到地球曲率)。所以我查了一下維基百科公式是here。需要幫助計算地理距離
我基本建立我的Python功能基於這一點,這是我想出了:
def geocalc(start_lat, start_long, end_lat, end_long):
start_lat = math.radians(start_lat)
start_long = math.radians(start_long)
end_lat = math.radians(end_long)
end_long = math.radians(end_long)
d_lat = start_lat - end_lat
d_long = start_long - end_long
EARTH_R = 6372.8
c = math.atan((math.sqrt((math.cos(end_lat)*d_long)**2 +((math.cos(start_lat)*math.sin(end_lat)) - (math.sin(start_lat)*math.cos(end_lat)*math.cos(d_long)))**2))/((math.sin(start_lat)*math.sin(end_lat)) + (math.cos(start_lat)*math.cos(end_lat)*math.cos(d_long))))
return EARTH_R*c
的問題是,出來的結果真的不準確的。我是python的新手,所以一些幫助或建議將不勝感激!
請給一個具體的例子(輸入,預期的輸出,實際輸出)。 – 2012-01-13 23:56:31
我輸入了這些座標(-6.508,55.071)和(-8.886,51.622)。 預計產量爲414Km。實際結果是6473公里 – Darkphenom 2012-01-14 00:19:11
我認爲這不是不準確,這是錯誤的。<不準確可能是420公里 – hochl 2012-01-14 01:33:24