gpt4 book ai didi

python - 修复 Shapely 中的无效多边形

转载 作者:IT老高 更新时间:2023-10-28 22:08:36 28 4
gpt4 key购买 nike

Shapely 将多边形定义为无效,如果它的任何线段相交,包括共线的线段。许多软件包会创建一个带有“切口”的区域或区域,如下所示,它具有共线段:

enter image description here

>>> pp = Polygon([(0,0), (0,3), (3,3), (3,0), (2,0), 
(2,2), (1,2), (1,1), (2,1), (2,0), (0,0)])
>>> pp.is_valid
WARNING:shapely.geos:Self-intersection at or near point 2 0
False

当然,切口可以在 Shapely 中本地实现,或者同样的几何图形可以实现为两个有效的多边形,但如果我只有上面显示的点列表,是否有一个容易“修复”的方法(创建有效的此点列表中的几何图形)?

最佳答案

我找到了适用于特定情况的解决方案:

>>> pp2 = pp.buffer(0)
>>> pp2.is_valid
True
>>> pp2.exterior.coords[:]
[(0.0, 0.0), (0.0, 3.0), (3.0, 3.0), (3.0, 0.0), (2.0, 0.0), (0.0, 0.0)]
>>> pp2.interiors[0].coords[:]
[(2.0, 1.0), (2.0, 2.0), (1.0, 2.0), (1.0, 1.0), (2.0, 1.0)]

关于python - 修复 Shapely 中的无效多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com