Намиране на местоположения наблизо с MySQL
Ето SQL изявлението, което ще намери най-близките 20 местоположения, които са в радиус от 25 мили до координатата 37, -122. Той изчислява разстоянието въз основа на географската ширина/дължина на този ред и целевата ширина/дължина и след това пита само за редове, където стойността на разстоянието е по-малка от 25, подрежда цялата заявка по разстояние и я ограничава до 20 резултата. За да търсите по километри вместо по мили, заменете 3959 с 6371.
Структура на таблицата:
id,name,address,lat,lng
ЗАБЕЛЕЖКА - Тук географска ширина =37 и дължина =-122. Така че просто предайте своите.
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;
Можете да намерите подробности тук .