QGIS合并图层后如何拆分独立岛屿要素并分配ID、计算面积
QGIS合并缓冲图层后属性表仅显示原始图层对应记录的解决方法
你当前合并后属性表只有4条记录的核心原因是:合并操作直接将4个原始图层各自作为一个多面(MultiPolygon)整体要素写入新图层,没有把互相独立的缓冲“岛屿”拆分为单独要素,所以不会按单个岛屿生成记录。按以下步骤操作就能得到目标效果:
- 拆分独立岛屿要素
打开QGIS处理工具箱,找到多部件到单部件工具,输入图层选择你当前合并生成的4记录图层,运行后输出的新图层里,每个互不连通的独立“岛屿”就会对应1条单独的属性记录。如果你做缓冲时不同原始图层的缓冲范围存在重叠、需要把相邻/重叠的缓冲合并成同一个岛屿再统计,先运行
融合工具,选择“融合全部要素为一个”选项,输出结果再跑多部件转单部件即可,避免重叠区域重复生成要素。 - 为每个岛屿分配独立ID
打开单部件输出图层的字段计算器,新建整数字段,字段名可设为island_id,在表达式栏输入@row_number,确认执行后就会为所有岛屿要素生成从1开始的连续唯一ID。 - 计算单岛屿面积
仍在字段计算器中新建实数字段,字段名可设为feature_area,如果需要计算投影坐标系下的平面面积(如平方米、平方公里),输入表达式$area即可;如果需要按指定椭球计算面积,可根据需求选择对应面积计算函数,执行后自动生成每个要素的面积数值。
内容的提问来源于stack exchange,提问作者Roos
相关产品推荐
相关产品推荐

