如果 Polygon 的任何线段相交(包括共线线段),则 Shapely 将 Polygon 定义为无效。许多软件包将创建一个带有“切口”的区域或区域,如此处所示,它具有共线段:
>>> 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 中本地实现切口,或者可以将相同的几何体实现为两个有效的多边形,但是如果我只有上面显示的点列表,是否有一个简单的“修复”这个(从这个创建有效的几何体)点列表)?
原文由 jpcgt 发布,翻译遵循 CC BY-SA 4.0 许可协议
我找到了适用于给定特定案例的解决方案: