私はユーザーから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の初心者ですので、いくつかの助けやアドバイスをいただければ幸いです!私は(d_long)あなたはmath.sinを逃したと思います https://pypi.python.org/pypi/geopy
は、具体的な例(入力、期待される出力、実際の出力)を与えてください。 –
これらの座標(-6.508,55.071)と(-8.886,51.622)を入力しました。 予想される出力は414Kmでした。実際の結果は6473Kmでした – Darkphenom
これは間違っています、これは間違っています><不正確かもしれません420km – hochl