根据与查询点的地理距离对位置进行有效排序

时间:2011-12-16 16:43:30

标签: algorithm geolocation location distance

我正在尝试找到一种有效的方法,可能是O(log(n)),根据地理坐标(lat,lon)找到给定数量的最近位置到查询位置。

预先不知道查询点,但我可以提前组织其他位置以优化查询。

是否有这样的方法,还是我必须订购并裁剪所有同行的清单?

1 个答案:

答案 0 :(得分:0)

如果你的表面满足三角不等式,即是一个euklidian空间,重新排序空间索引的最佳算法是空间填充曲线或怪物曲线。它将2d问题简化为1d问题并离散化并解决空间的问题。查找类似位置的方法类似于O(log(n))。你可以在nick空间索引hilbert curve四叉树博客上找到一篇好文章。我建议也看看n-ary monotonic grey code。我自己编写了一个php实现,包括4个方向的hilbert曲线和moore曲线。