这是一个MySQL查询,可以完全满足您的要求。请记住,像这样的事情通常是近似值,因为地球不是完美的球形,也不考虑山脉,丘陵,山谷等。我们在带有PHP和MySQL的AcademicHomes.com上使用此代码,它返回$内的记录$ latitude,$ longitude的半径英里。
$res = mysql_query("SELECt * FROM your_tableWHERe ( (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");


