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.