如何合并两个Shapely对象?

10

我试图在我的Python项目中合并两个Shapely对象。有一种手册描述了一些Shapely的特性,例如cascaded_union(),但这只适用于多边形。shapely.ops.unary_union()方法应该也适用于其他几何形状,但我无法让其工作。

简而言之:如何合并两个LinearRing对象?

1个回答

9

我实际上自己解决了这个问题。

p1 = Polygon(ring.coords) 
p2 = Polygon(ring2.coords)

我需要从我的环形物体中制作多边形。然后,我会使用这些多边形创建一个数组。将它们合并为一个整体,并从新的多边形创建一个线性环。
pols = [p1, p2] 
new_pol = ops.cascaded_union(pols) 
new_ring = LinearRing(new_pol.exterior.coords)

当您从线性环创建多边形,对其进行操作,然后将结果放回到多边形中时,您几乎知道您的编程工作做得很糟糕,代码也不可读了。我实际上改变了整个项目,使用多边形代替线性环。这是因为我意识到,您无法在LinearRings上使用大多数“交叉”、“相交”等方法。但是在多边形上可以。所以要明智选择!如果您使用Shapely并且想要检查对象的“内部”“外部”,则几乎需要使用多边形。 - Martin Fake
2
我正在寻找从多边形中提取点的方法,你的答案帮了我很大忙。对于给定的示例,您可以通过 poly_x,poly_y = new_pol.exterior.coords.xy 来实现。谢谢。 - ryanjdillon
1
cascaded_union 已经被弃用。建议使用 unary_union 代替。 - mapf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接