Ini adalah kueri MySQL yang akan melakukan apa yang Anda inginkan. Perlu diingat hal-hal seperti ini adalah perkiraan secara umum, karena bumi tidak bulat sempurna dan ini juga tidak memperhitungkan gunung, bukit, lembah, dll. Kami menggunakan kode ini di AcademicHomes.com dengan PHP dan MySQL, ia mengembalikan catatan dalam jarak $radius mil dari $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");