Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Großkreisentfernung nur mit MySQL berechnen?
MySQL-Großkreisentfernung (Haversine-Formel)
Dieser Artikel befasst sich mit der Herausforderung, die Großkreisentfernung zwischen zwei geografischen Koordinaten ausschließlich mit MySQL zu berechnen . Die herkömmliche PHP-Implementierung, die mehrere SQL-Abfragen und komplexe Berechnungen umfasst, kann umständlich sein.
Lösung
Um den PHP-Code in reines MySQL zu konvertieren, nutzen wir die Haversine-Formel , eine mathematische Gleichung, die den Abstand zwischen zwei Punkten auf einer Kugel berechnet. Diese Formel wird von den MySQL-Funktionen ACOS() und RADIANS() unterstützt.
Hier ist die entsprechende MySQL-Abfrage:
SELECT id, ( 3959 * ACOS( COS(RADIANS(37)) * COS(RADIANS(lat)) * COS(RADIANS(lon) - RADIANS(-122)) + SIN(RADIANS(37)) * SIN(RADIANS(lat)) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
Erklärung
Mit diesem MySQL-basierten Ansatz können Sie den Großkreisabstand zwischen Koordinaten effizient berechnen, ohne dass dies erforderlich ist für externe PHP-Berechnungen oder zusätzliche SQL-Abfragen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Großkreisentfernung nur mit MySQL berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!