Това е MySQL заявка, която ще направи точно това, което искате. Имайте предвид, че нещата като това са приблизителни като цяло, тъй като Земята не е идеално сферична, нито това взема предвид планини, хълмове, долини и т.н.. Ние използваме този код на AcademicHomes.com с PHP и MySQL връща записи в рамките на $radius мили от $latitude, $longitude.
$res = mysql_query("SELECT
*
FROM
your_table
WHERE
(
(69.1 * (latitude - " . $latitude . ")) *
(69.1 * (latitude - " . $latitude . "))
) + (
(69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3)) *
(69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3))
) < " . pow($radius, 2) . "
ORDER BY
(
(69.1 * (latitude - " . $latitude . ")) *
(69.1 * (latitude - " . $latitude . "))
) + (
(69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3)) *
(69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3))
) ASC");