在许多段中找到最接近点的算法(反向地理编码)

Gio*_*gio 6 algorithm math segments reverse-geocoding

我有一组由两点定义的段.鉴于一点,我怎样才能发现最接近这一点的细分?

我已经编写了一个计算点和段之间距离的算法.无论如何计算每个段的这种距离,然后选择具有最低距离的段是不是真的有效:(

由于段代表街道,这实际上是一个反向地理编码问题所以我希望有这个问题的众所周知的解决方案......

非常感谢!

Vic*_*let 4

使用网格、kd 树、四叉树或类似的二元空间划分方法。然后,从您的点所在的树单元开始,开始探索线段,直到该点到包含线段的单元格的距离大于迄今为止找到的最小距离。

http://en.wikipedia.org/wiki/Binary_space_partitioning

(当然,这是假设路段/街道很少发生变化,但您有很多点需要定位)。