我想得到多个多边形的交集。使用Python的shapely
程序包,我可以使用intersection
函数找到两个多边形的交点。是否有类似的有效函数来获取多个多边形的交集?
这是一个代码片段,以了解我的意思:
from shapely.geometry import Point
coord1 = ( 0,0 )
point1 = Point(coord1)
circle1 = point1.buffer(1)
coord2 = ( 1,1 )
point2 = Point(coord2)
circle2 = point2.buffer(1)
coord3 = ( 1,0 )
point3 = Point(coord3)
circle3 = point3.buffer(1)
可以找到两个圆的交点circle1.intersection(circle2)
。我可以找到所有三个圆的交点circle1.intersection(circle2).intersection(circle3)
。但是,这种方法不适用于大量的多边形,因为它需要越来越多的代码。我想要一个接受任意数量的多边形并返回其交点的函数。
我想也许是将坐标存储在字典中,并在使用itertools导入组合时循环浏览。我会尽快发布
—
ziggy
“他们的路口”是什么意思?您是指所有与至少一个其他多边形相交的区域,还是所有输入都相交的区域?
—
jpmc26
我的意思是所有多边形的交集,而不是至少一个。
—
碎片
您应该在上面进行澄清(也许用示例输出)。我可以肯定,大多数答案都不会像您希望的那样。(而且一些回答者误解了的事实足以证明这个问题需要澄清。)
—
jpmc26
@ jpmc26我刚刚在使用rtree的答案中添加了更新。该方法现在更加高效和可扩展。希望这可以帮助!
—
Antonio Falciano