Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Großkreisentfernung in MySQL mithilfe der Haversine-Formel berechnen?

Wie kann ich die Großkreisentfernung in MySQL mithilfe der Haversine-Formel berechnen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-27 09:27:17289Durchsuche

How Can I Calculate Great Circle Distance in MySQL Using the Haversine Formula?

MySQL: Großkreisentfernungsberechnung mithilfe der Haversine-Formel

Einführung

Berechnung der Entfernung zwischen Zwei geografische Koordinaten auf einer Kugel sind eine häufige Aufgabe in Geodatenanwendungen. Ein weit verbreiteter Ansatz hierfür ist die Haversine-Formel, die ein genaues Ergebnis für den Großkreisabstand zwischen zwei Punkten liefert.

Verwendung der Haversine-Formel in MySQL

Zu Um die Haversine-Formel in MySQL zu implementieren, können wir die folgenden Schritte verwenden:

  1. Konvertieren Sie die Koordinatenwerte (Breiten- und Längengrade) in Bogenmaß mit der Funktion RADIANS().
  2. Berechnen Sie die Differenz zwischen den Koordinaten mit der Funktion SUBTRACT() oder ABS().
  3. Quadrieren Sie die in Schritt 2 erhaltenen Differenzen und addieren Sie sie dann .
  4. Multiplizieren Sie die Summe aus Schritt 3 mit dem Radius der Erde (6371 Kilometer oder 3959). Meilen).
  5. Berechnen Sie abschließend die Quadratwurzel des Ergebnisses aus Schritt 4 mit der Funktion SQRT().

Beispiel-SQL-Abfrage

Hier ist eine Beispiel-SQL-Abfrage, die die Haversine-Formel implementiert, um den Großkreisabstand zwischen zwei zu berechnen Koordinaten:

SELECT (
    6371 * ACOS(
        COS(RADIANS(37)) * COS(RADIANS(lat)) * 
        COS(RADIANS(lng) - RADIANS(-122)) + 
        SIN(RADIANS(37)) * SIN(RADIANS(lat))
    )
) AS distance 
FROM markers 
WHERE distance < 25
ORDER BY distance
LIMIT 0, 20;

Diese Abfrage gibt die ID und die berechnete Entfernung für die 20 nächstgelegenen Standorte in einem Umkreis von 25 Kilometern zur Koordinate (37, -122) zurück.

Fazit

Durch die Verwendung der Haversine-Formel in MySQL können wir den Großkreisabstand zwischen zwei geografischen Koordinaten genau bestimmen. Diese Technik ist besonders nützlich für standortbasierte Anwendungen, die genaue Entfernungsberechnungen erfordern.

Das obige ist der detaillierte Inhalt vonWie kann ich die Großkreisentfernung in MySQL mithilfe der Haversine-Formel berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn