Locaties in de buurt vinden met MySQL
Hier is de SQL-instructie die de dichtstbijzijnde 20 locaties zal vinden die zich binnen een straal van 25 mijl van de 37, -122 coördinaat bevinden. Het berekent de afstand op basis van de breedtegraad/lengtegraad van die rij en de beoogde breedtegraad/lengtegraad, en vraagt dan alleen naar rijen waar de afstandswaarde kleiner is dan 25, rangschikt de hele zoekopdracht op afstand en beperkt deze tot 20 resultaten. Om te zoeken op kilometers in plaats van mijlen, vervangt u 3959 door 6371.
Tabelstructuur:
id,name,address,lat,lng
OPMERKING - Hier breedtegraad =37 &lengtegraad =-122. Dus je passeert gewoon je eigen.
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 vind je hier .