使用我的LATITUDE和LONGITUDE的SQL记录查找最近的地方

时间:2016-04-12 14:03:10

标签: php mysql google-maps geolocation

我有一个名为tbl_places的mySql表 这包含字段 Place_idPlaceNamePlace_LATITUDEplace_LONGITUDE

我想立即在place detail页面中使用它 如果打开页面的当前place_id为4,那么我希望最接近该位置的最多6条记录。

假设当前位置是:

 place_id = 4
 place_name = Lal Killa
 place_LATITUDE = 77.2413969039917
 place_LONGITUDE = 28.653838307772872

我无法理解如何找到最近的地方?

2 个答案:

答案 0 :(得分:1)

使用以下查询:

SELECT Place_id,PlaceName, ( 3959 * acos( cos( radians(37) ) * cos( radians( Place_LATITUDE ) ) * cos( radians( Place_LONGITUDE ) - radians(-122) ) + sin( radians(37) ) * sin( radians( Place_LATITUDE ) ) ) ) AS distance FROM tbl_places HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

注 - 这里纬度= 37&amp;经度= -122

另外,请查看here以获取更多参考资料。

答案 1 :(得分:0)

您可以使用Cohen-Sutherland(点剪裁)算法来了解附近的人,如果您想最小化结果,请将其设置为从0到YOUR_LIMIT的增量顺序。

它比将极坐标[(即)lat和long]转换为XY

的公式更好