问题陈述:我有一个位置数据库,如果特定位置X在指定的距离半径内,我想返回。简而言之,在我的搜索中,将所有位于X点半径范围内的城市归还给我。
此解决方案会导致对数据库中的每个点进行强力搜索。但是,为了优化搜索,如果地图被某些环分区,那么这意味着我先在分区0内搜索,最近的分区先搜索然后移出,直到我满意为止。
是否有一种算法能够有效地对地图进行分区并根据邻近度返回位置搜索。
简而言之: {A,B,C ...}是地图中的点。对于空间中的这些点{x},找到x距离d内的所有点。
答案 0 :(得分:3)
我不确定您计划使用哪种语言,但Boost.geometry
对c ++有合理的实现。
对于python,libspatialindex有一个包装器,它在Rtree包中做了很多相同的事情。