一般地图中的“区域内的目标”,如何实现高效的查找?
varlj 2013-10-24 05:07:01 相信大家都使用过地图,都会有这样一个功能,即以当前位置为中心,搜索周围多少公里内符合要求的目标
现在我也有一个类似的功能需要实现,不过想不到一个比较好的算法,请大家支个招
各种目标的经纬度是保存在数据库中的,假设就叫long和lat
然后我指定一个中心点(pos_x,pos_y),找出该点半径5公里内符合要求的目标
虽然根据经纬度是可以计算出两点间的距离,但是数据量一大,我不可能把所有目标都计算一遍距离来判断是否符合要求
所以我现在的方式是先算出这个圆的外接正方形,然后找出在这个正方形之内的目标,缩小数据量之后再去计算是否在半径之内
我相信肯定还有更好的算法来加快筛选目标,感觉应该更多属于数学范畴……
请大家给点意见,谢谢