Orte in der Nähe mit MySQL finden
Hier ist die SQL-Anweisung, die die nächsten 20 Orte findet, die sich in einem Umkreis von 25 Meilen um die Koordinate 37, -122 befinden. Es berechnet die Entfernung basierend auf dem Breiten-/Längengrad dieser Zeile und dem Ziel-Breiten-/Längengrad und fragt dann nur nach Zeilen, in denen der Entfernungswert kleiner als 25 ist, ordnet die gesamte Abfrage nach Entfernung und begrenzt sie auf 20 Ergebnisse. Um nach Kilometern statt nach Meilen zu suchen, ersetzen Sie 3959 durch 6371.
Tabellenstruktur :
id,name,address,lat,lng
HINWEIS - Hier Breitengrad =37 und Längengrad =-122. Also geben Sie einfach Ihr eigenes weiter.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
Details finden Sie hier .