【问题标题】:How to merge 2 Shapely objects?如何合并 2 个 Shapely 对象?
【发布时间】:2012-11-29 17:53:46
【问题描述】:

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

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

【问题讨论】:

    标签: python merge shapely


    【解决方案1】:

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

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

    用我的戒指制作多边形。然后我用这些多边形创建一个数组。将它们与 cascaded_union 合并并从新多边形创建一个 LinearRing。

    pols = [p1, p2] 
    new_pol = ops.cascaded_union(pols) 
    new_ring = LinearRing(new_pol.exterior.coords)
    

    【讨论】:

    • 当您从线性环创建多边形时,对它们进行操作,然后将结果放回多边形中,您几乎知道您在编程方面做得很差,并且不再有可读的代码。实际上,我将整个项目更改为使用多边形而不是线性环。那是因为我意识到,您不能在 LinearRings 上使用大多数“交叉”“相交”等方法。但是在多边形上你可以。所以明智地选择!如果您使用 Shapely 并且想要检查对象的“内部”“外部”,那么您几乎需要多边形。
    • 我正在寻找从多边形中提取点的方法,您的回答有所帮助。对于给定的示例,您可以通过poly_x, poly_y = new_pol.exterior.coords.xy 执行此操作。谢谢。
    猜你喜欢
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2018-10-06
    • 2019-08-16
    • 2011-11-01
    • 2020-07-09
    相关资源
    最近更新 更多