GPS 計算のハバサイン公式: 距離と方位
問題:
距離の計算また、2 つの GPS ポイント間の方位には、多くの場合、ハバーサイン距離公式の利用が含まれます。ただし、正しい方位を取得するとき、特に負の値が生成される場合に問題が発生する可能性があります。
解決策:
距離を計算するには、ハバーサイン公式を使用できます。
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): """ Calculate the great circle distance in kilometers between two points on the earth (specified in decimal degrees) """ # convert decimal degrees to radians lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # haversine formula dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 # Radius of earth in kilometers. Use 3956 for miles. Determines return value units. return c * r
方位を決定するには、次のように方位変数を調整します。
Bearing = atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2) - sin(lat1)*cos(lat2)*cos(lon2-lon1)) Bearing = degrees(Bearing)
この変更により、方位が 0 ~ 360 度の間に配置されるようになります。
以上がHaversine 公式を使用して GPS 距離と方位を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。