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

Python の Hasversine 公式を使用して 2 つの GPS ポイント間の距離と方位を計算するにはどうすればよいですか?

DDD
リリース: 2024-11-30 09:59:10
オリジナル
671 人が閲覧しました

How to Calculate the Distance and Bearing Between Two GPS Points Using Python's Haversine Formula?

Python で Haversine 公式を使用して 2 つの GPS ポイントの間の方位と距離を計算する方法

Haversine 公式は、次の計算に使用される数学方程式です。球上の 2 点間の大圏距離。 GPS のコンテキストでは、この公式を使用して 2 つの GPS 座標間の距離と方位の両方を決定で​​きます。

ステップ 1: 関数の定義

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
ログイン後にコピー

ステップ 2:計算

start_lon, start_lat = -1.7297222222222221, 53.32055555555556
bearing, distance = 96.02166666666666, 2
end_lon, end_lat = -1.6997222222222223, 53.31861111111111

distance_calculated = haversine(start_lon, start_lat, end_lon, end_lat)

print("Distance:", distance_calculated)
ログイン後にコピー

出力:

Distance: 2.0000054199729084
ログイン後にコピー

この例では、計算された距離は期待値 2 と一致します。

注:

  • ハーバーサインの公式は地球が完全な球体であると仮定していますが、これは完全に真実ではありません。ただし、ほとんどの実用的な目的では、かなり正確な近似が得られます。
  • より高度な計算には、WGS84 楕円体などのより正確な地球モデルを使用できます。

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

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