ホームページ > バックエンド開発 > Python チュートリアル > Haversine 公式を使用して GPS 距離と方位を正確に計算するにはどうすればよいですか?

Haversine 公式を使用して GPS 距離と方位を正確に計算するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-02 08:42:11
オリジナル
944 人が閲覧しました

How Can I Accurately Calculate GPS Distance and Bearing Using the Haversine Formula?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート