python polygon_在Python中将Multipolygon转换为Polygon - python

Improve this question

是否可以使用Shapely将Multipolygon转换为填充所有孔或缺少内部区域的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 compo

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值