我数据库中有一些商户的经纬度,然后我知道我自己的当前经纬度,怎么能够快速确定我周边2公里内的商户呢??有朋友能提供一下算法,或者思路吗?谢谢!

解决方案 »

  1.   

    又是这帖子!上次是 100m,这次是 2kmhttp://topic.csdn.net/u/20100712/17/536d4816-5717-4123-aaa9-fd9b239761c3.html
      

  2.   

    我也在搞这个问题,两个经纬度之间的距离好算。一个经纬度周边指定距离都包含哪些经纬度 真不好算。
    实际应用 就像 百度地图 查找周边 500m 1km的商户那样。
      

  3.   

    其实是一个多维数据的索引问题,如果是一维数据,可以很方便的不论从树型还是数组的存储中得到一定范围内的近邻。
    对于二维数据,最简单的想法是把整个空间分为一个个小方格,可以根据坐标确定商家在哪个方格内,同样,也可以确定这个圆形范围覆盖了哪些方格,只在这些方格内搜索商家,可以排除很多其它数据。
    如果需要进一步优化的话,楼主可以看看Gird File,K-d-tree,R-tree等数据结构相关的算法。