Geometry 从一大组多边形中确定点所在的多边形

Geometry 从一大组多边形中确定点所在的多边形,geometry,polygon,point,vertex,polygons,Geometry,Polygon,Point,Vertex,Polygons,假设我有一个二维平面,上面覆盖着多边形(标识为顶点数组),类似于: 假设我还有一个在这个平面上有坐标的点,返回该点所在的多边形的最简单方法是什么 虽然这个例子列出了4个多边形,但是运行一个简单的程序,但是我正在构建一个系统,目前大约有150个多边形,可以扩展到数千个,所以这样做可能会非常慢 那么,是否有任何解决方案可以避免迭代所有可用多边形,并检查点是否存在?您可以使用kd树或r树。它可以减少搜索空间。您还可以查找四叉树。您可以选择四边形大小以适合多边形并最小化重叠的边界框。您可以使用kd树或

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

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

虽然这个例子列出了4个多边形,但是运行一个简单的程序,但是我正在构建一个系统,目前大约有150个多边形,可以扩展到数千个,所以这样做可能会非常慢


那么,是否有任何解决方案可以避免迭代所有可用多边形,并检查点是否存在?

您可以使用kd树或r树。它可以减少搜索空间。您还可以查找四叉树。您可以选择四边形大小以适合多边形并最小化重叠的边界框。

您可以使用kd树或r树。它可以减少搜索空间。您还可以查找四叉树。您可以选择四边形大小以适合多边形并最小化重叠的边界框。

哇,这看起来很完美,我现在正在搜索相关信息,但是您知道有没有任何资源可以显示这一点,如果可能的话,可以使用伪代码,但我对语言不敏感,可以解释我编写的四边形键解决方案。它使用希尔伯特曲线,类似于四叉树。你可以从phpclasses.org下载。但编写kd树并不难。你也可以使用带有空间索引的数据库。哇,这看起来很完美,我现在正在搜索关于它的信息,但是你知道有没有任何资源可以显示它正在实现,如果可能的话,是伪代码,但是我对语言相当不了解,可以解释我写了一个四键解决方案。它使用希尔伯特曲线,类似于四叉树。你可以从phpclasses.org下载。但编写kd树并不难。还可以使用具有空间索引的数据库。