QGIS入门教程四: 属性表怎么编辑?字段计算器咋用?
在这篇QGIS入门教程四: 属性表怎么编辑?字段计算器咋用?中,我们专门解决一个入门阶段非常常见的问题:图层已经加载进 QGIS 了,但不知道如何修改属性表、怎样新增字段、字段计算器里的表达式该怎么写,以及为什么有时候编辑按钮是灰色的。
属性表是矢量 GIS 数据的“信息表”。点、线、面要素在地图上显示空间位置,而属性表记录名称、编号、类型、面积、长度、等级、备注等非空间信息。对 GIS 初学者来说,学会编辑属性表和使用字段计算器,是从“看地图”进入“处理数据”的关键一步。

引言:QGIS属性表编辑到底在改什么?
在 QGIS 中,属性表编辑通常包括三类操作:修改已有单元格内容、新增或删除字段、用字段计算器批量生成属性值。比如你可以把地块类型从“耕地”改成“建设用地”,也可以新增一个“面积_平方米”字段,并用表达式自动计算每个面要素的面积。
需要注意的是,属性表不是独立存在的 Excel 表。它和图层中的空间要素一一对应。你在属性表里改一行,实际上是在修改对应地图要素的属性记录。因此,编辑属性表前要先确认数据格式、坐标系、字段类型和编辑权限。
背景:为什么很多人第一次编辑QGIS属性表会出错?
QGIS 入门用户常见的属性表问题主要有以下几种:
- 属性表能打开,但单元格不能直接修改。
- 字段计算器可以打开,但计算结果为空或报错。
- 新增字段后看不到结果,或者字段类型选错了。
- 计算面积、长度的数值明显不对。
- 编辑完成后关闭 QGIS,重新打开发现修改没保存。
- GeoJSON、CSV、只读文件或数据库图层存在编辑限制。
这些问题通常不是 QGIS “不好用”,而是因为属性表编辑涉及三个前提:图层必须支持编辑、必须进入编辑模式、字段计算器表达式必须匹配字段类型和坐标系。
原理:属性表、字段、字段计算器分别是什么?
属性表是什么
属性表可以理解为矢量图层的表格数据。每一行通常对应一个要素,每一列就是一个字段。例如一个行政区面图层,可能包含以下字段:
| 字段名 | 含义 | 常见字段类型 |
|---|---|---|
| name | 行政区名称 | 文本 |
| code | 行政区编码 | 文本或整数 |
| type | 区域类型 | 文本 |
| area_m2 | 面积平方米 | 小数 |
字段类型为什么重要
字段类型决定了这一列能存什么值。文本字段可以存“村庄”“道路”“A001”,整数字段适合存数量,小数字段适合存面积、长度、比例等数值。如果你把面积结果写入整数字段,小数部分可能会丢失;如果把数字写入文本字段,后续统计和分类可能会不方便。
字段计算器是什么
QGIS 字段计算器是一个批量计算属性值的工具。它可以根据表达式,为已有字段更新值,也可以新建字段并填充计算结果。常见用途包括:
- 计算面图层面积。
- 计算线图层长度。
- 把多个字段拼接成一个名称字段。
- 根据条件生成分类字段。
- 批量给选中要素赋值。
- 生成唯一编号或序号。
字段计算器的核心是表达式。例如 $area 表示当前面要素的面积,$length 表示当前线要素的长度,"name" 表示引用 name 字段的值。
步骤:QGIS属性表怎么编辑?
步骤1:打开图层属性表
- 在 QGIS 左侧图层面板中,右键点击需要编辑的矢量图层。
- 选择打开属性表。
- 确认属性表中是否能看到字段名和要素记录。
如果属性表是空的,先检查图层是否真的有要素。可以在地图上缩放到图层范围,或右键图层查看要素数量。
步骤2:切换编辑模式
- 在属性表窗口左上角点击铅笔图标,进入编辑模式。
- 进入编辑模式后,表格单元格通常可以直接修改。
- 修改完成后,再次点击铅笔图标或点击保存按钮。
QGIS 的编辑模式是一种保护机制。默认不让你直接修改数据,是为了避免误操作。只有进入编辑模式后,对属性表和几何图形的修改才会被记录为待保存状态。
步骤3:直接修改单元格内容
如果只是修改少量属性,例如把某个地块的名称改成“测试地块”,可以直接双击属性表中的单元格进行编辑。修改时要注意字段类型:
- 文本字段可以输入中文、英文、编号等字符。
- 整数字段只能输入整数。
- 小数字段适合输入面积、长度等带小数的数值。
- 日期字段需要符合 QGIS 支持的日期格式。
如果输入内容和字段类型不匹配,QGIS 可能会拒绝保存,或者保存后显示为空值。
步骤4:保存属性表编辑
- 编辑完成后,点击属性表工具栏上的保存编辑按钮。
- 如果不想继续编辑,可以点击铅笔图标退出编辑模式。
- 退出编辑模式时,如果还有未保存修改,QGIS 会提示保存、放弃或取消。
很多入门用户以为“单元格显示已经改了”就等于保存成功。实际上,在 QGIS 编辑模式下,修改可能还只是暂存在编辑会话中。一定要点击保存编辑,尤其是在关闭项目或切换数据前。
步骤:QGIS字段计算器咋用?
用字段计算器新建一个面积字段
以面图层计算面积为例,操作步骤如下:
- 打开面图层属性表。
- 点击铅笔图标,进入编辑模式。
- 点击属性表工具栏中的字段计算器按钮。
- 勾选创建新字段。
- 字段名称填写
area_m2。 - 输出字段类型选择小数。
- 根据需要设置字段长度和精度,例如长度 20、精度 2。
- 表达式输入
$area。 - 点击确定,查看属性表中是否新增 area_m2 字段。
- 保存编辑。
如果图层坐标系是以米为单位的投影坐标系,$area 通常会返回平方米。如果图层是经纬度坐标系,例如 EPSG:4326,直接用 $area 计算出来的面积往往不适合作为真实面积使用。
用字段计算器计算线长度
对道路、河流、管线等线图层,可以新建长度字段:
$length
建议字段名使用 length_m 或 len_m,字段类型选择小数。如果图层坐标系单位为米,结果一般表示米。
用字段计算器拼接文本字段
如果你有 name 字段和 type 字段,想生成“名称-类型”的标签字段,可以使用:
"name" || '-' || "type"
这里的 || 表示文本拼接,字段名需要用英文双引号包裹。注意不要把字段名写成中文引号或单引号。
用字段计算器按条件分类
如果要根据面积大小生成等级字段,可以使用条件表达式:
CASE
WHEN "area_m2" >= 100000 THEN '大'
WHEN "area_m2" >= 10000 THEN '中'
ELSE '小'
END
这个表达式的意思是:面积大于等于 100000 的为“大”,面积大于等于 10000 的为“中”,其余为“小”。输出字段类型应选择文本。
只给选中要素计算属性
字段计算器也可以只作用于选中要素。典型流程是:
- 在地图或属性表中选中需要处理的要素。
- 打开字段计算器。
- 勾选仅更新选中的要素。
- 选择更新已有字段或创建新字段。
- 输入表达式并执行。
这个功能适合批量修改局部数据。例如只给某几个村庄的 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 属性表编辑任务。