【问题标题】:Determining which polygons a point is within from a large set of polygons从大量多边形中确定一个点在哪些多边形内
【发布时间】:2013-09-25 09:13:07
【问题描述】:

假设我有一个 2D 平面,上面覆盖着多边形(标识为顶点数组),类似于:

假设我在这个平面上也有一个坐标点,返回该点所在的多边形的最简单方法是什么?

虽然此示例列出了 4 个多边形,但运行 check on each polygon to see if the point is within it 会很简单,但我正在构建一个目前有大约 150 个多边形的系统,并且可以扩展到数千个,所以这样做可能会变得非常慢.

那么,是否有任何解决方案不会导致遍历所有可用多边形并检查该点是否存在?

【问题讨论】:

    标签: geometry polygon point vertex polygons


    【解决方案1】:

    您可以使用 kd-tree 或 r-tree。它可以减少搜索空间。您也可以寻找四叉树。您可以选择四边形大小以适应多边形并最小化重叠边界框。

    【讨论】:

    • 哇,这看起来很完美,我现在正在搜索有关它的信息,但是您知道任何可以显示此实现的资源,如果可能的话,伪代码,但我是相当语言不可知论者并且会解释
    • 我写了一个四键解决方案。它使用希尔伯特曲线,类似于四叉树。您可以在 phpclasses.org 下载它。但是编写 kd-tree 并不难。您还可以使用具有空间索引的数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 2012-01-14
    • 2019-04-26
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多