python:为交叉点排序两个多边形列表

Ben*_*der 4 python sorting gis geometry

我有两个大的多边形列表.

使用Python,我想在列表1每个多边形,并发现其与清单2中的多边形几何交集的结果(我用匀称做到这一点).

因此,对于列表1中的多边形i,列表2中可能有多个与其相交的多边形.

问题是两个列表都很大,如果我只是嵌套两个循环并为每个可能的多边形对运行交叉命令,那么它需要很长时间.我不确定在布尔测试的交点之前是否会显着加快这一点(例如,如果相交:返回交叉点).

对于我来说,排序或组织这两个多边形列表以便使交叉点更有效的方法是什么?是否有适合这种情况的排序算法,我可以使用python进行排序?

我对编程比较陌生,没有离散数学的背景,所以如果你知道我应该使用的现有算法(我假设存在这种情况),请链接或给出一些可以帮助我的解释实际上在python中实现它.

此外,如果有一个更好的StackExchange网站来解决这个问题,请告诉我.我觉得它有点桥接一般的python编程,gis和几何,所以我不太确定.

Amb*_*ber 8

四叉树通常用于缩小需要相互检查的多边形集合 - 如果两个多边形都占据四叉树中的至少一个相同区域,则只需要相互检查两个多边形.你的四叉树有多深(在多边形的情况下,而不是点)取决于你.