Heim >Backend-Entwicklung >PHP-Tutorial >Wie berechnet man die Großkreisentfernung in MySQL mithilfe der Haversine-Formel?
Die Berechnung der Großkreisdistanz, auch bekannt als Haversine-Distanz, in MySQL kann durch die folgenden Schritte erreicht werden:
Zuerst die Längen- und Breitengradkoordinaten aus der relevanten Datenquelle (z. B. einem PHP-Skript) abrufen.
Die Haversine-Formel wird verwendet, um den Großkreisabstand zwischen zwei Punkten auf einer Kugel zu berechnen. In MySQL implementiert die folgende SQL-Anweisung die Formel:
( 3959 * acos( cos( radians(origin_lat) ) * cos( radians(lat) ) * cos( radians(lon) - radians(origin_lon) ) + sin( radians(origin_lat) ) * sin( radians(lat) ) ) )
Um Standorte innerhalb eines angegebenen Entfernungsbereichs zu finden, verwenden Sie die folgende SQL-Anweisung:
SELECT id, ( 3959 * acos( cos( radians(origin_lat) ) * cos( radians(lat) ) * cos( radians(lon) - radians(origin_lon) ) + sin( radians(origin_lat) ) * sin( radians(lat) ) ) ) AS distance FROM locations HAVING distance < distance_range ORDER BY distance LIMIT num_results;
Hier ist eine Beispiel-SQL-Abfrage, die verwendet werden kann, um die 20 nächstgelegenen Standorte im Umkreis von 25 Meilen zu den Koordinaten (37, -122) zu finden:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians(lat) ) * cos( radians(lon) - radians(-122) ) + sin( radians(37) ) * sin( radians(lat) ) ) ) AS distance FROM locations HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
Von Wenn Sie diese Schritte befolgen, können Sie Großkreisentfernungsberechnungen vollständig in MySQL mithilfe der Haversine-Formel durchführen.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Großkreisentfernung in MySQL mithilfe der Haversine-Formel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!