QGIS入门教程四: 属性表怎么编辑?字段计算器咋用?

GIS基础理论
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

在这篇QGIS入门教程四: 属性表怎么编辑?字段计算器咋用?中,我们专门解决一个入门阶段非常常见的问题:图层已经加载进 QGIS 了,但不知道如何修改属性表、怎样新增字段、字段计算器里的表达式该怎么写,以及为什么有时候编辑按钮是灰色的。

属性表是矢量 GIS 数据的“信息表”。点、线、面要素在地图上显示空间位置,而属性表记录名称、编号、类型、面积、长度、等级、备注等非空间信息。对 GIS 初学者来说,学会编辑属性表和使用字段计算器,是从“看地图”进入“处理数据”的关键一步。

QGIS入门教程属性表编辑和QGIS字段计算器使用流程
QGIS 属性表编辑与字段计算器的基本操作流程:打开属性表、进入编辑模式、计算字段、保存修改。

引言:QGIS属性表编辑到底在改什么?

在 QGIS 中,属性表编辑通常包括三类操作:修改已有单元格内容、新增或删除字段、用字段计算器批量生成属性值。比如你可以把地块类型从“耕地”改成“建设用地”,也可以新增一个“面积_平方米”字段,并用表达式自动计算每个面要素的面积。

需要注意的是,属性表不是独立存在的 Excel 表。它和图层中的空间要素一一对应。你在属性表里改一行,实际上是在修改对应地图要素的属性记录。因此,编辑属性表前要先确认数据格式、坐标系、字段类型和编辑权限。

背景:为什么很多人第一次编辑QGIS属性表会出错?

QGIS 入门用户常见的属性表问题主要有以下几种:

  • 属性表能打开,但单元格不能直接修改。
  • 字段计算器可以打开,但计算结果为空或报错。
  • 新增字段后看不到结果,或者字段类型选错了。
  • 计算面积、长度的数值明显不对。
  • 编辑完成后关闭 QGIS,重新打开发现修改没保存。
  • GeoJSON、CSV、只读文件或数据库图层存在编辑限制。

这些问题通常不是 QGIS “不好用”,而是因为属性表编辑涉及三个前提:图层必须支持编辑、必须进入编辑模式、字段计算器表达式必须匹配字段类型和坐标系。

原理:属性表、字段、字段计算器分别是什么?

属性表是什么

属性表可以理解为矢量图层的表格数据。每一行通常对应一个要素,每一列就是一个字段。例如一个行政区面图层,可能包含以下字段:

字段名 含义 常见字段类型
name 行政区名称 文本
code 行政区编码 文本或整数
type 区域类型 文本
area_m2 面积平方米 小数

字段类型为什么重要

字段类型决定了这一列能存什么值。文本字段可以存“村庄”“道路”“A001”,整数字段适合存数量,小数字段适合存面积、长度、比例等数值。如果你把面积结果写入整数字段,小数部分可能会丢失;如果把数字写入文本字段,后续统计和分类可能会不方便。

字段计算器是什么

QGIS 字段计算器是一个批量计算属性值的工具。它可以根据表达式,为已有字段更新值,也可以新建字段并填充计算结果。常见用途包括:

  • 计算面图层面积。
  • 计算线图层长度。
  • 把多个字段拼接成一个名称字段。
  • 根据条件生成分类字段。
  • 批量给选中要素赋值。
  • 生成唯一编号或序号。

字段计算器的核心是表达式。例如 $area 表示当前面要素的面积,$length 表示当前线要素的长度,"name" 表示引用 name 字段的值。

步骤:QGIS属性表怎么编辑?

步骤1:打开图层属性表

  1. 在 QGIS 左侧图层面板中,右键点击需要编辑的矢量图层。
  2. 选择打开属性表
  3. 确认属性表中是否能看到字段名和要素记录。

如果属性表是空的,先检查图层是否真的有要素。可以在地图上缩放到图层范围,或右键图层查看要素数量。

步骤2:切换编辑模式

  1. 在属性表窗口左上角点击铅笔图标,进入编辑模式。
  2. 进入编辑模式后,表格单元格通常可以直接修改。
  3. 修改完成后,再次点击铅笔图标或点击保存按钮。

QGIS 的编辑模式是一种保护机制。默认不让你直接修改数据,是为了避免误操作。只有进入编辑模式后,对属性表和几何图形的修改才会被记录为待保存状态。

步骤3:直接修改单元格内容

如果只是修改少量属性,例如把某个地块的名称改成“测试地块”,可以直接双击属性表中的单元格进行编辑。修改时要注意字段类型:

  • 文本字段可以输入中文、英文、编号等字符。
  • 整数字段只能输入整数。
  • 小数字段适合输入面积、长度等带小数的数值。
  • 日期字段需要符合 QGIS 支持的日期格式。

如果输入内容和字段类型不匹配,QGIS 可能会拒绝保存,或者保存后显示为空值。

步骤4:保存属性表编辑

  1. 编辑完成后,点击属性表工具栏上的保存编辑按钮。
  2. 如果不想继续编辑,可以点击铅笔图标退出编辑模式。
  3. 退出编辑模式时,如果还有未保存修改,QGIS 会提示保存、放弃或取消。

很多入门用户以为“单元格显示已经改了”就等于保存成功。实际上,在 QGIS 编辑模式下,修改可能还只是暂存在编辑会话中。一定要点击保存编辑,尤其是在关闭项目或切换数据前。

步骤:QGIS字段计算器咋用?

用字段计算器新建一个面积字段

以面图层计算面积为例,操作步骤如下:

  1. 打开面图层属性表。
  2. 点击铅笔图标,进入编辑模式。
  3. 点击属性表工具栏中的字段计算器按钮。
  4. 勾选创建新字段
  5. 字段名称填写 area_m2
  6. 输出字段类型选择小数
  7. 根据需要设置字段长度和精度,例如长度 20、精度 2。
  8. 表达式输入 $area
  9. 点击确定,查看属性表中是否新增 area_m2 字段。
  10. 保存编辑。

如果图层坐标系是以米为单位的投影坐标系,$area 通常会返回平方米。如果图层是经纬度坐标系,例如 EPSG:4326,直接用 $area 计算出来的面积往往不适合作为真实面积使用。

用字段计算器计算线长度

对道路、河流、管线等线图层,可以新建长度字段:

$length

建议字段名使用 length_mlen_m,字段类型选择小数。如果图层坐标系单位为米,结果一般表示米。

用字段计算器拼接文本字段

如果你有 name 字段和 type 字段,想生成“名称-类型”的标签字段,可以使用:

"name" || '-' || "type"

这里的 || 表示文本拼接,字段名需要用英文双引号包裹。注意不要把字段名写成中文引号或单引号。

用字段计算器按条件分类

如果要根据面积大小生成等级字段,可以使用条件表达式:

CASE
WHEN "area_m2" >= 100000 THEN '大'
WHEN "area_m2" >= 10000 THEN '中'
ELSE '小'
END

这个表达式的意思是:面积大于等于 100000 的为“大”,面积大于等于 10000 的为“中”,其余为“小”。输出字段类型应选择文本。

只给选中要素计算属性

字段计算器也可以只作用于选中要素。典型流程是:

  1. 在地图或属性表中选中需要处理的要素。
  2. 打开字段计算器。
  3. 勾选仅更新选中的要素
  4. 选择更新已有字段或创建新字段。
  5. 输入表达式并执行。

这个功能适合批量修改局部数据。例如只给某几个村庄的 status 字段赋值为“已核查”。

常见坑:QGIS属性表编辑和字段计算器最容易踩的坑

坑1:忘记进入编辑模式

如果属性表不能修改,先看图层是否已经进入编辑模式。没有点击铅笔图标时,属性表通常只是查看状态。

坑2:数据源是只读的

如果图层来自只读目录、压缩包、某些在线服务,或者当前用户没有文件写入权限,QGIS 可能无法保存编辑。建议先把数据另存为 GeoPackage 或 Shapefile 到本地可写目录。

坑3:用经纬度坐标系直接算面积

这是 QGIS 字段计算器中最常见的问题之一。经纬度坐标系的单位是度,不是米。直接用 $area 可能得到不适合实际使用的面积值。更稳妥的做法是把图层投影到合适的投影坐标系,再计算面积。

坑4:字段类型选错

面积、长度、比例建议使用小数字段;分类、名称、编码建议使用文本字段。行政区代码、地块编号这类看起来像数字但不参与数学计算的字段,通常也建议用文本字段,避免前导零丢失。

坑5:字段名写错

QGIS 表达式中引用字段时,需要使用英文双引号,例如 "name"。如果写成 name,QGIS 可能会把它当成函数、变量或普通文本理解,导致表达式错误。

坑6:编辑后没有保存

属性表修改完成后,一定要点击保存编辑。只关闭属性表窗口并不等于保存。建议在批量计算前先备份数据,计算后立即检查结果并保存。

方法比较:直接编辑、字段计算器、处理工具箱怎么选?

方法 适用场景 优点 注意事项
直接编辑属性表 修改少量字段值 简单直观,适合人工核查 容易误改,批量效率低
字段计算器 批量计算面积、长度、分类、拼接文本 效率高,可重复表达逻辑 需要理解字段类型和表达式
处理工具箱 字段重构、批量处理、模型流程 适合规范化流程和批处理 入门门槛略高,需要设置参数
导出到表格软件编辑 非空间字段整理、人工录入 表格操作熟悉 容易破坏要素关联,不建议随意改主键字段

对入门学习来说,建议先掌握直接编辑和字段计算器。等你需要批量处理多个图层,或者要把操作固化成流程时,再学习处理工具箱和模型构建器。

检查清单:编辑QGIS属性表前后要确认什么?

  • 确认图层是矢量图层,而不是栅格图层。
  • 确认数据文件所在目录有写入权限。
  • 编辑前备份原始数据,特别是正式项目数据。
  • 确认是否已经进入编辑模式。
  • 新增字段前先想清楚字段名、字段类型、长度和精度。
  • 计算面积或长度前确认图层坐标系是否合适。
  • 字段计算器表达式执行前,先看预览结果是否正常。
  • 只想更新部分要素时,确认是否勾选“仅更新选中的要素”。
  • 计算完成后抽查几条记录,确认结果符合预期。
  • 最后点击保存编辑,并重新打开数据验证修改是否真正写入。

FAQ:QGIS属性表编辑和字段计算器常见问题

QGIS属性表为什么不能编辑?

常见原因是没有进入编辑模式、图层数据源只读、文件没有写入权限,或者图层来自不支持编辑的服务。先点击铅笔图标,如果仍然不能编辑,可以把图层另存为 GeoPackage 后再试。

QGIS字段计算器在哪里?

打开图层属性表后,在属性表工具栏中可以找到字段计算器按钮。也可以在图层进入编辑模式后,通过属性表工具栏进行新建字段或更新字段操作。

QGIS怎么新增字段?

进入编辑模式后,可以在属性表中点击新建字段按钮,也可以通过字段计算器勾选“创建新字段”。如果要同时计算字段值,推荐使用字段计算器。

QGIS字段计算器计算面积为什么不准?

最常见原因是图层使用经纬度坐标系。经纬度坐标系单位是度,不适合直接计算平方米面积。建议先把数据投影到合适的投影坐标系,再使用 $area 计算。

字段计算器里字段名要怎么写?

引用字段值时,字段名通常使用英文双引号,例如 "name"。文本常量使用单引号,例如 '已核查'。不要混用中文引号。

QGIS可以像Excel一样批量填充属性吗?

可以,但推荐使用字段计算器。字段计算器比手工复制粘贴更可靠,尤其适合按条件赋值、拼接文本、计算面积长度、更新选中要素等操作。

编辑属性表会不会影响地图图形?

只修改普通属性字段,一般不会改变几何图形的位置和形状。但如果你编辑的是与样式、标签、分类有关的字段,地图显示效果可能会随之变化。

结论:先会编辑属性表,再学会用字段计算器批量处理

QGIS 属性表编辑的核心并不复杂:打开属性表、进入编辑模式、修改或计算字段、检查结果、保存编辑。真正需要注意的是字段类型、坐标系、表达式写法和保存状态。

对于刚入门的 GIS 学习者,建议从三个练习开始:手动修改一个文本字段,用字段计算器计算一个面积字段,再用条件表达式生成一个分类字段。掌握这三步后,你就能处理大多数基础的 QGIS 属性表编辑任务。