ホームページ >バックエンド開発 >Python チュートリアル >Haversine 公式は Python で GPS ポイント間の距離と方位をどのように計算しますか?

Haversine 公式は Python で GPS ポイント間の距離と方位をどのように計算しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-01 18:41:10563ブラウズ

How Does the Haversine Formula Calculate Distance and Bearing Between GPS Points in Python?

Python の Haversine 公式: GPS ポイント間の距離と方位の計算

ナビゲーションの世界では、2 つの GPS ポイント間の距離と方位を決定することが重要です。 Haversine の公式は、球面幾何学を使用してこれらの値を正確に計算する方法を提供します。

Haversine の公式を使用した距離の計算

2 つの GPS ポイント間の距離を計算するには、緯度と経度を変換する必要があります。 10 進度からラジアンまで。次に、次の式を適用します。

dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon/2) ** 2
c = 2 * asin(sqrt(a))
distance = c * r

ここで、dlon と dlat は経度と緯度の差を表し、a は中間値、r は地球の半径 (キロメートルの場合は 6371 キロメートル、またはキロメートルの場合は 3956 マイル)

Haversine 公式を使用した方位の計算

距離の決定に加えて、また、Haversine の公式を使用して、最初の点から 2 番目の点までの方位 (方位角) を求めることもできます。

y = sin(dlon) * cos(lat2)
x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon)
bearing = atan2(y, x)

ここで、dlon は経度の差、lat1 と lat2 は 2 つの点の緯度、xと y は中間値で、方位は北から時計回りに測定された方位角をラジアンで表します。

Python実装

距離と方位を計算するための Haversine 式の Python 実装を次に示します。

from math import radians, cos, sin, asin, sqrt

def haversine(lon1, lat1, lon2, lat2):
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])

    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

    return c * r

以上がHaversine 公式は Python で GPS ポイント間の距離と方位をどのように計算しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。