Closed. This question needs details or clarity 。它目前不接受答案。
想改善这个问题吗?添加细节并通过 editing this post 澄清问题。
去年关闭。
Improve this question
是否可以将
提取感兴趣的 扩展-收缩每个外部边界,以填充这些边界大致包含的“洞”,例如,处理“带切口的甜甜圈” 合并上一步获得的所有几何图形
例如:
而上面列出的脚本按预期生成了一个边长为 3 的近似正方形,即,它填充了左下角的洞以及
想改善这个问题吗?添加细节并通过 editing this post 澄清问题。
去年关闭。
Improve this question
是否可以将
Multipolygon
转换为使用 Shapely 填充所有孔或缺失内部区域的 Polygon
?我已经尝试了一段时间,但在文档中找不到它。下图显示了一个多面体示例,其中包含要填充的孔和要删除的正方形。最佳答案
一种近似的方法可能是:
MultiPolygon
的各个组件的外边界 例如:
#!/usr/bin/env python
from shapely.geometry import MultiPolygon, Polygon
from shapely.ops import cascaded_union
a = 0.25
delta = 0.49
P = MultiPolygon([
(
((0,0),(0,3),(3,3),(3,2-delta),(2,2-delta),(2,2),(1,2),(1,1),(2,1),(2,1+delta),(3,1+delta),(3,0),(0,0)),
[((a, a), (1-a,a), (1-a,1-a), (a,1-a), (a,a))]
)
])
eps = 0.01
omega = cascaded_union([
Polygon(component.exterior).buffer(eps).buffer(-eps) for component in P
])
for x,y in zip(*omega.exterior.coords.xy):
print(x, y)
MultiPolygon
P
看起来像:而上面列出的脚本按预期生成了一个边长为 3 的近似正方形,即,它填充了左下角的洞以及
MultiPolygon
中心的“空白空间”,它被渲染为一个洞在具有足够高的参数 eps
值的扩展-收缩过程中。10-08 15:04