问题描述
我数据库中有一些商户的经纬度,然后我知道我自己的当前经纬度,怎么能够快速确定我周边2公里内的商户呢??有朋友能提供一下算法,或者思路吗?谢谢!
解决方案
解决方案二:
又是这帖子!上次是100m,这次是2km
解决方案三:
引用1楼bao110908的回复:
又是这帖子!上次是100m,这次是2kmhttp://topic.csdn.net/u/20100712/17/536d4816-5717-4123-aaa9-fd9b239761c3.html
+1
解决方案四:
呃,可能是我没说清楚。通过两个点的经纬度计算距离,这个我知道。我想问的是,如果经纬度数据很多,不可能都取出来一个个去计算,再去排除吧?有没有更好的算法?
解决方案五:
我也在搞这个问题,两个经纬度之间的距离好算。一个经纬度周边指定距离都包含哪些经纬度真不好算。实际应用就像百度地图查找周边500m1km的商户那样。
解决方案六:
其实是一个多维数据的索引问题,如果是一维数据,可以很方便的不论从树型还是数组的存储中得到一定范围内的近邻。对于二维数据,最简单的想法是把整个空间分为一个个小方格,可以根据坐标确定商家在哪个方格内,同样,也可以确定这个圆形范围覆盖了哪些方格,只在这些方格内搜索商家,可以排除很多其它数据。如果需要进一步优化的话,楼主可以看看GirdFile,K-d-tree,R-tree等数据结构相关的算法。
解决方案七:
引用5楼flylybird的回复:
其实是一个多维数据的索引问题,如果是一维数据,可以很方便的不论从树型还是数组的存储中得到一定范围内的近邻。对于二维数据,最简单的想法是把整个空间分为一个个小方格,可以根据坐标确定商家在哪个方格内,同样,也可以确定这个圆形范围覆盖了哪些方格,只在这些方格内搜索商家,可以排除很多其它数据。如果需要进一步优化的话,楼主可以看看GirdFile,K-d-tree,R-tree等数据结构相关的算法……
恩不错呵呵
时间: 2024-07-29 14:01:50