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

无公共属性字段时如何自动合并相邻矢量多边形

基于相邻关系合并多边形的自动化处理方案

你可以通过两种方案实现无公共属性下按邻接关系合并多边形,完全可以自动化批量处理,不需要手动操作:


方案1:QGIS内置工具组合实现(零代码)

不需要额外安装组件,直接用QGIS自带工具按以下步骤操作即可:

  • 给原始多边形图层新增唯一标识字段:打开字段计算器,新建整型字段orig_id,表达式填$id,给每个要素分配唯一ID。
  • 识别邻接关系:调用「按位置连接属性」工具,输入层和连接层都选原始多边形图层,几何谓词勾选touches(触碰),运行后即可得到每个要素对应的所有邻接要素ID。
  • 分配连通组ID:调用「连通分量分析」工具,基于邻接关系给属于同一连通域(互相相邻)的所有多边形分配同一个group_id字段值。
  • 执行溶解:调用「溶解(dissolve)」工具,选择按group_id字段溶解,即可得到所有相邻多边形合并后的结果,非相邻多边形不会被合并。
  • 后续筛选:给溶解后的结果图层新建面积字段,表达式填$area / 1000000即可得到平方公里为单位的面积,直接筛选数值大于100的要素即可。

方案2:PyQGIS脚本批量自动化(适合大文件/多文件处理)

如果需要处理大量文件,可以直接使用以下脚本批量执行,依赖networkx库处理连通关系,运行前在QGIS对应的Python环境中执行pip install networkx安装即可:

from qgis.core import *
import networkx as nx

# 替换为你的矢量文件路径
input_path = "your_input_file.shp"
# 替换为你的输出文件路径
output_path = "your_output_dissolve.shp"

# 加载图层
layer = QgsVectorLayer(input_path, "raw_polygons", "ogr")
if not layer.isValid():
    raise ValueError("图层加载失败,请检查文件路径")

# 构建邻接关系图
adj_graph = nx.Graph()
# 添加所有要素为图节点
for feature in layer.getFeatures():
    adj_graph.add_node(feature.id())

# 匹配邻接要素添加边
for feat_a in layer.getFeatures():
    geom_a = feat_a.geometry()
    for feat_b in layer.getFeatures():
        # 避免重复判断
        if feat_a.id() >= feat_b.id():
            continue
        if geom_a.touches(feat_b.geometry()):
            adj_graph.add_edge(feat_a.id(), feat_b.id())

# 识别连通分量,分配组ID
group_id_map = {}
for group_idx, component in enumerate(nx.connected_components(adj_graph)):
    for fid in component:
        group_id_map[fid] = group_idx

# 给图层新增group_id字段并赋值
layer.startEditing()
layer.addAttribute(QgsField("group_id", QVariant.Int))
layer.updateFields()
for feat in layer.getFeatures():
    feat["group_id"] = group_id_map[feat.id()]
    layer.updateFeature(feat)
layer.commitChanges()

# 执行溶解操作
processing.run("native:dissolve", {
    "INPUT": layer,
    "FIELD": ["group_id"],
    "OUTPUT": output_path
})

多边形示例图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:06:06