咋在大规模地理坐标中查找距离某一个点半径为R的所有点,应该怎么样设计地理坐标的数据结构

以我的知识水平只能向你推荐k-d树,想不到更好的方法了。刚刚google一下查到了这篇文章,不知道是否有帮助:从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
■网友
可以用二维 k-d 树维护,查询时间复杂度应该是约为 【咋在大规模地理坐标中查找距离某一个点半径为R的所有点,应该怎么样设计地理坐标的数据结构】 咋在大规模地理坐标中查找距离某一个点半径为R的所有点,应该怎么样设计地理坐标的数据结构
的。
■网友
GeoHash
■网友
地理坐标的话是二维的吧,搞什么k-d tree啊Voronoi diagram
■网友
我直接使用mongo的GEO索引。 数据量不大,没有测试过性能。猜想其内部实现应该也是楼上所说的算法。题主可以测试大数据量(至少上2忆条吧)下的索引查询性能。
■网友
四叉树,先找到圆心所在的方框,然后对周围方框进行广度遍历,时间复杂度是O(log(n)+m),n是总节点个数,m是最终找到的节点个数。https://zh.wikipedia.org/wiki/%E5%9B%9B%E5%8F%89%E6%A0%91


    推荐阅读