一般地图中的“区域内的目标”,如何实现高效的查找?

varlj 2013-10-24 05:07:01
相信大家都使用过地图,都会有这样一个功能,即以当前位置为中心,搜索周围多少公里内符合要求的目标

现在我也有一个类似的功能需要实现,不过想不到一个比较好的算法,请大家支个招

各种目标的经纬度是保存在数据库中的,假设就叫long和lat
然后我指定一个中心点(pos_x,pos_y),找出该点半径5公里内符合要求的目标
虽然根据经纬度是可以计算出两点间的距离,但是数据量一大,我不可能把所有目标都计算一遍距离来判断是否符合要求
所以我现在的方式是先算出这个圆的外接正方形,然后找出在这个正方形之内的目标,缩小数据量之后再去计算是否在半径之内

我相信肯定还有更好的算法来加快筛选目标,感觉应该更多属于数学范畴……
请大家给点意见,谢谢
...全文
95 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧