Toto je dotaz MySQL, který udělá přesně to, co chcete. Mějte na paměti, že věci, jako je toto, jsou obecně přibližné, protože Země není dokonale kulovitá, ani to nebere v úvahu hory, kopce, údolí atd.. Tento kód používáme na AcademicHomes.com s PHP a MySQL vrací záznamy v okruhu $radius mil od $zeměpisná šířka, $délka.
$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");