Berechnen Sie die Entfernung zwischen zwei GPS-Punkten in Python

Oluwafisayo Oluwatayo 15 Februar 2024
  1. Berechnen Sie die Entfernung zwischen zwei GPS-Punkten mit der Haversine-Formel in Python
  2. Berechnen Sie die Entfernung zwischen zwei GPS-Punkten mit der mpu-Bibliothek in Python
  3. Berechnen Sie die Entfernung zwischen zwei GPS-Punkten mit der geopy-Bibliothek in Python
  4. Abschluss
Berechnen Sie die Entfernung zwischen zwei GPS-Punkten in Python

Die Berechnung der Entfernung zwischen zwei GPS-Punkten ist eine geografische und mathematische Übung, die wir innerhalb des Python-Frameworks ausführen können. Schauen wir uns nun an, wie wir diese Operation mit Python durchführen können.

Berechnen Sie die Entfernung zwischen zwei GPS-Punkten mit der Haversine-Formel in Python

Die Haversine-Formel ist eine vereinfachte Methode, um die Entfernung zwischen zwei GPS-Punkten mit Python zu berechnen, aber ihre Berechnung basiert auf der Annahme, dass die Erde eine perfekte Kugel ist. Die Erde ist jedoch keine perfekte Kugel.

Das bedeutet, dass das Ergebnis, das wir erhalten, nicht vollkommen genau wäre; Es gibt eine kleine Fehlerspanne aufgrund der Annahme. Die Haversine-Formel berechnet die Entfernung zwischen zwei GPS-Punkten, indem sie die Entfernung zwischen zwei Längen- und Breitengradpaaren berechnet.

Erstellen Sie eine Python und geben Sie diese Codes ein. Benennen Sie die Datei wie unten gezeigt new.py:

Codeschnipsel- new.py:

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


def haversine(lat1, lon1, lat2, lon2):

    R = 3959.87433

    dLat = radians(lat2 - lat1)
    dLon = radians(lon2 - lon1)
    lat1 = radians(lat1)
    lat2 = radians(lat2)

    a = sin(dLat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dLon / 2) ** 2
    c = 2 * asin(sqrt(a))

    return R * c


lon1 = -103.548851
lat1 = 32.0004311
lon2 = -103.6041946
lat2 = 33.374939

print(haversine(lat1, lon1, lat2, lon2))

Ausgang:

Python Entfernung mit Haversine berechnen

Wenn wir auf Ausführen klicken, sollten wir dieses Ergebnis im Terminal sehen.

Berechnen Sie die Entfernung zwischen zwei GPS-Punkten mit der mpu-Bibliothek in Python

Die mpu ist von Martins Python Utilities abgeleitet und ist eine Python-Bibliothek, mit der verschiedene Funktionen ausgeführt werden können, ohne dass weitere Abhängigkeiten erforderlich sind.

Zuerst installieren wir mpu, indem wir Folgendes eingeben:

pip install mpu

Dann erstellen wir eine neue Python-Datei, nennen sie new.py und geben die folgenden Codes ein:

Codeschnipsel- new.py:

import mpu

lat1 = 32.0004311
lon1 = -103.548851

lat2 = 33.374939
lon2 = -103.6041946

dist = mpu.haversine_distance((lat1, lon1), (lat2, lon2))
print(dist)

Warten Sie einen Moment, und Sie sollten die im Terminal berechnete Entfernung sehen.

Ausgang:

Python Entfernung mit MPU berechnen

Berechnen Sie die Entfernung zwischen zwei GPS-Punkten mit der geopy-Bibliothek in Python

geopy für Python ist eine Bibliothek, die speziell für die Berechnung von Entfernungen zwischen Ländern, Staaten, Städten usw. entwickelt wurde. Wie wir im folgenden Beispiel sehen werden, können wir die Entfernungen anhand von Kilometern, Meilen usw. berechnen.

Geben Sie im Terminal Folgendes ein, um die Bibliothek geopy zu installieren:

pip install geopy

Erstellen Sie eine neue Datei, nennen Sie sie new.py und geben Sie diese Codes ein.

from geopy.distance import geodesic

origin = (30.172705, 31.526725)

dist = (30.288281, 31.732326)

print(geodesic(origin, dist).kilometers)

Ausgang:

Python Entfernung mit Geopy berechnen

Wenn Sie möchten, dass das Ergebnis in Meilen angezeigt wird, ändern Sie Kilometer im letzten Bit des Codes in Meilen und führen Sie den Code aus.

Abschluss

Die Berechnung der Entfernung zwischen zwei bestimmten Punkten auf der Erde könnte nicht einfacher sein. Auch wenn die Haversine-Formel um etwa 0,5 % abweichen kann, ist das Ergebnis immer noch nah dran und für verschiedene Projekte verwendbar.

Oluwafisayo Oluwatayo avatar Oluwafisayo Oluwatayo avatar

Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.

LinkedIn