如何合并两个不相交的非凸多边形?
多边形合并问题与解决方案
图形说明
- 待合并的两个多边形:包含一个长条形主体多边形A,以及一个位于其旁的小型多边形B
- 预期合并效果:多边形A与B通过一段过渡区域平滑连接,形成单一整体多边形
初步思路
原本计划通过以下流程实现合并:
- 获取多边形B在多边形A上的投影
- 生成多边形B与该投影区域的凸包(convex-hull)
- 调用
shapely.ops.unary_union()完成最终合并
但目前无法实现多边形到另一个多边形的投影这一步骤。
当前已用解决方案
目前通过以下步骤完成了合并,欢迎提出改进建议或更优方案:
- 调用
shapely.ops.nearest_points获取多边形A上距离多边形B最近的点 - 以该最近点为中心,用多边形B宽度的一半执行缓冲(buffer)操作
- 计算缓冲多边形与多边形A外边界(
exterior)的交集 - 生成该交集区域与多边形B的凸包
- 将上述凸包与多边形A合并
内容的提问来源于stack exchange,提问作者yazan sayed
相关产品推荐
相关产品推荐

