Трябва да използвате нещо подобно, за да получите най-близките резултати до дадено местоположение
$query = sprintf(
"SELECT foo,
6371 * ACOS( Cos(RADIANS(lat)) * COS(RADIANS(%f))
* COS(RADIANS(%f) - RADIANS(lng)) + SIN(RADIANS(lat))
* SIN(RADIANS(%f)) ) * 1000 AS distance
FROM `%s`
ORDER BY distance",
$lat, $lag, $lng, $table
);
Трябва да зададете $lat
, $lng
и $table
според структурата на вашата таблица и може би задайте ограничение за резултата.
Получавате подробно обяснение тук Търсене по географско разстояние с MySQL .