【发布时间】:2013-11-22 10:34:44
【问题描述】:
我想在图中找到最近的边。考虑以下示例:
图1: 黄色:顶点,黑色:边,蓝色:查询点
一般信息: 该图包含大约 1000 万个顶点和大约 1500 万条边。每个顶点都有坐标。边由两个相邻的顶点定义。
最简单的解决方案: 我可以简单地计算从查询点到图中所有其他边的距离,但这会非常慢。
想法和困难: 我的想法是使用一些空间索引来加速查询。我已经实现了一个 kd-tree 来找到最近的顶点。但如图 1 所示,入射到最近顶点的边不一定是离查询点最近的。我会得到边缘 3-4 而不是更近的边缘 7-8。
问题: 有没有一种算法可以在图中找到最近的边?
【问题讨论】:
-
我假设你所有的边都是直线?
-
是的,他们是直的。
-
... 顶点有坐标 ...,就像方形网格上的笛卡尔坐标纬度/经度?或其他一些特定领域的坐标系?极坐标?
-
纬度/经度坐标。该图是一个国家规模的道路网络。边缘可能短于 1000 米。
-
嘿,你知道如何解决这个问题吗?
标签: algorithm geometry computational-geometry graph-algorithm