【问题标题】:Remove a Polygon from a MultiPolygon with shapely in Python在 Python 中使用 shapely 从 MultiPolygon 中删除多边形
【发布时间】:2018-07-31 12:42:08
【问题描述】:

我正在使用 shapely 库在 Python 中处理空间对象。给定一个 MultiPolygon,我想从中删除不包含障碍物的多边形。但是,我还没有找到一种方法来做到这一点,即使我可以通过使用 mapping 函数从 MultiPolygon 获取坐标。我已经知道要删除哪些多边形,因此识别它们没有问题。

您知道如何从给定的 MultiPolygon 中获取子多边形吗?

提前感谢您的帮助!

【问题讨论】:

    标签: python polygon shapely


    【解决方案1】:

    MultiPolygon 可以直接从多边形列表构建。此外,可以直接迭代包含给定多面体的多边形:

    from shapely.geometry import Polygon, MultiPolygon
    
    P1 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
    P2 = Polygon([(2, 2), (3, 2), (3, 3), (2, 3)])
    M = MultiPolygon([P1, P2])
    
    for P in M:
        print(P)
    

    现在,这两个属性可以使用列表推导来过滤出满足特定条件some_condition的多边形:

    M2 = MultiPolygon([P for P in M if some_condition(P)])
    

    【讨论】:

    • 谢谢,这正是我想要的!
    猜你喜欢
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2015-02-17
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多