MySQL Great Circle Distance (Haversine-Formel)
Die Haversine-Formel ist eine mathematische Formel, die verwendet werden kann, um die Entfernung zwischen zwei Punkten auf einer Kugel, wie der Erde, zu berechnen. In MySQL können Sie die Haversine-Formel verwenden, um die Entfernung zwischen zwei Punkten in Breitengrad und Längengrad zu berechnen, indem Sie die trigonometrischen Funktionen von MySQL (z.B. SIN, COS, RADIANS) und die integrierte ROUND()
-Funktion verwenden, um das endgültige Ergebnis auf eine bestimmte Anzahl von Dezimalstellen zu runden. Eine Beispielabfrage, die die Entfernung zwischen zwei Punkten in Kilometern berechnet, könnte wie folgt aussehen:
SELECT ROUND(6371 * ACOS(COS(RADIANS(90 - lat1)) * COS(RADIANS(90 - lat2)) + SIN(RADIANS(90 - lat1)) * SIN(RADIANS(90 - lat2)) * COS(RADIANS(lon1 - lon2))), 2) AS distance_km FROM locations
In diesem Beispiel sind lat1
, lat2
, lon1
und lon2
die Breiten- und Längengradkoordinaten der beiden Punkte und 6371
ist der Radius der Erde in Kilometern. Das Ergebnis der Abfrage ist eine einzelne Spalte mit dem Namen distance_km
, die die Entfernung zwischen den beiden Punkten in Kilometern enthält, auf 2 Dezimalstellen gerundet.
Hinweis: Die Haversine-Formel gibt ein ungefähres Ergebnis. Vincenty-Formel ist für kleine Distanzen genauer, aber sie ist etwas komplexer zu implementieren.