我有一个名为tbl_places
的mySql表
这包含字段
Place_id
,PlaceName
,Place_LATITUDE
,place_LONGITUDE
。
我想立即在place detail
页面中使用它
如果打开页面的当前place_id
为4,那么我希望最接近该位置的最多6条记录。
假设当前位置是:
place_id = 4
place_name = Lal Killa
place_LATITUDE = 77.2413969039917
place_LONGITUDE = 28.653838307772872
我无法理解如何找到最近的地方?
答案 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
的公式更好