You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用QGIS、Python等工具将L形多边形拆分为两个优先为矩形的多边形

L形多边形拆分为矩形操作方案

L形多边形示例

方法1:QGIS 图形化操作

  • 导入L形多边形图层到QGIS,选中需要拆分的要素
  • 开启顶点捕捉功能,使用「分割特征」工具,从L形的内凹直角点出发向对边绘制垂直分割线,确认分割即可直接得到两个矩形子要素
  • 批量拆分可安装「Polygon Splitter」插件,配置正交拆分规则后自动处理全图层要素

方法2:Python 代码实现(依赖geopandas、shapely)

拆分逻辑:先计算L形的最小外接矩形,求外接矩形与原L形的差集得到缺失的小矩形,再通过差集运算得到两个拆分后的矩形。

import geopandas as gpd
from shapely.geometry import Polygon

# 示例L形多边形,可替换为读取shp/geojson得到的要素
l_polygon = Polygon([(0,0), (2,0), (2,2), (1,2), (1,1), (0,1), (0,0)])

# 获取最小外接矩形
min_x, min_y, max_x, max_y = l_polygon.bounds
min_rect = Polygon([(min_x, min_y), (max_x, min_y), (max_x, max_y), (min_x, max_y)])

# 计算L形缺失的小矩形
missing_rect = min_rect.difference(l_polygon)

# 拆分得到两个矩形
if missing_rect.area * 2 < min_rect.area:
    rect_a = l_polygon.difference(missing_rect)
    rect_b = missing_rect
else:
    rect_a = missing_rect
    rect_b = l_polygon.difference(missing_rect)

# 如需导出结果,用下方代码
# split_gdf = gpd.GeoDataFrame(geometry=[rect_a, rect_b], crs="EPSG:4326")
# split_gdf.to_file("split_result.shp", encoding="utf-8")
  • 上述代码仅适用于边均为水平/垂直的正交L形,非正交L形可通过shapely.ops.split方法传入自定义分割线实现拆分
  • 批量处理只需遍历GeoDataFrame的每个要素执行上述逻辑即可

内容的提问来源于stack exchange,提问作者ghost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:18:05