Dit is een MySQL-query die precies doet wat u wilt. Houd er rekening mee dat dit soort dingen in het algemeen benaderingen zijn, aangezien de aarde niet perfect bolvormig is en er ook geen rekening wordt gehouden met bergen, heuvels, valleien, enz. We gebruiken deze code op AcademicHomes.com met PHP en MySQL retourneert het records binnen $radius miles van $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");