关闭。这个问题需要details or clarity .它目前不接受答案。
想改进这个问题?通过 editing this post 添加详细信息并澄清问题.
2年前关闭。
Improve this question
是否可以转换 Multipolygon
变成 Polygon
使用 Shapely 填充所有孔或缺失的内部区域?我已经尝试了一段时间,但我在文档中找不到它。下图显示了一个多面体示例,其中包含要填充的孔和要删除的正方形。
最佳答案
一种近似的方法可能是:
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
的值足够高的情况下,这相当于膨胀-收缩过程中的一个孔。 .
关于python - 在 Python 中将多多边形转换为多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082553/