说在前面,这两件事我几乎每天都在用,一个是“只想看某一个地物时怎么让屏幕清净”,另一个是“终于要动手改数据时为什么按了铅笔还是改不了”。标题里的第141讲,把“仅显示选中要素”和“编辑模式切换”放在一起,确实是有道理的:一个是解决“看”的问题,一个是解决“改”的问题,两者平时独立使用,真正做数据整理时会连续交替操作。这篇内容按照我平时带人的顺序来写:先说这两个功能各自解决什么场景,再说一步步怎么操作,最后把我在实际项目里踩过的坑、遇到的迷惑情况一并列出来,希望能帮大家少走弯路。
1. 先搞清楚这两个功能到底解决什么痛点
1.1 一个让我差点抓狂的工作现场
大概两年前,我接手过一个村庄级别的土地利用现状核对任务,手上是一个几千个图斑组成的矢量面图层,叠加了影像底图。领导给的要求是“把13号图斑的地类属性核一下,不对就改”。
这个需求听起来很简单,可当我打开图层,发现问题没那么轻松:几千个图斑密密麻麻地铺在屏幕上,13号图斑夹在中间,和旁边的地块颜色相近、边界挨着,鼠标放上去都很难点中。我当时的操作是不断放大缩小,来回找那个图斑,眼睛都快看花了。好不容易用识别工具(Identify Features)定位到了它,想改属性的时候又发现字段是灰色的,根本改不了。
后来我才彻底搞明白,这种场景必须走一套组合操作:先用“仅显示选中要素”把目光集中到一个或几个要素上,之后进入编辑模式才能改字段。如果只是单纯想浏览、量算,不涉及修改,那么连编辑模式都不用开,直接选中要素、右键显示即可。
所以,这两个功能是配合关系。一个人处理大量空间数据时,“按需显示”和“按需编辑”是最基本也是最容易被忽略的效率开关。
1.2 这两个功能的本质区别
“仅显示选中要素”听起来像是一个显示效果,但本质上它是一种图层过滤器。QGIS并没有真的把其他要素删除,它只是临时告诉画布:我现在只画你选中的那些要素,其余的先隐藏起来。这种机制和属性表里的“筛选”功能是相通的,只不过前者通过鼠标选择来触发,后者通过表达式来触发。
而“编辑模式切换”指向的是图层的读写状态。默认情况下,QGIS打开一个矢量图层时,是以只读方式加载的,目的就是让你放心浏览,不用担心误操作。只有把图层切换为编辑状态,QGIS才允许你修改几何形状、属性字段、增加或删除要素。换句话说,编辑模式是一个写保护开关,在你需要修改数据时才打开,修改完了就关掉,降低误操作风险。
顺带说一句,这两个开关都在“图层”这个大范围内工作,但互不依赖。我见过一些人误以为“不进入编辑模式就没法选中要素”,其实完全不是这样。选中要素是浏览态的基础操作,编辑模式是修改态的前提,两者之间没有前置关系,但是组合起来很好用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 仅显示选中要素:从“纷纷扰扰”到“只看你想看的”
2.1 最常用的操作路径:列表右键和快捷开关
我平时常用的第一种方式,是在图层列表里选中目标要素,然后右键图层名,在弹出的菜单中选择“仅显示选中要素”(Show Selected Features)。这个功能在我这边的汉化版本里就叫这个名称,如果你的界面是英文,对应的就是“Show Selected Features”。
具体操作拆开来说:
- 先用“选择要素”工具(Select Features,快捷键通常是Shift+单击或直接点选)在画布上,或者按F6打开属性表,选中你关心的一个或多个要素。
- 在左侧图层面板中找到这个图层,右键单击图层名称。
- 在下拉菜单里点击“仅显示选中要素”。
操作完你会发现,画布上的其他要素瞬间消失,只剩下选中的要素还显示着。这个效果在数据量大、图面复杂时,相当于给你的屏幕按了一下“清空键”,只保留当前焦点内容,干扰源一下子就没了。
这里多说一句:选中的要素不一定只有一个,可以是多个。比如你想对比研究区里的三个地块,那就按住Ctrl键依次点选这三个地物,再右键“仅显示选中要素”,画布上就只剩下这三个了。这种用法在专题图制图、图斑抽查时很实用。
2.2 第二个入口:属性表里的“图层显示选中项”
除了右键图层之外,还有一条容易被忽略的路径。打开属性表之后,在属性表工具栏上有一个筛选项,配合“显示选中要素”的图标可以直接达到同样效果。如果你的QGIS版本工具栏上没有这个按钮,可以通过自定义工具栏的方式拖出来,也可以直接在菜单栏里找“视图” -> “显示选中要素”(不同汉化版本略有差异)。
这两个入口本质一样,都是快速做一个“当前选中集合”的过滤。区别只在于,属性表入口适合你正在看属性表时顺带操作,图层右键入口适合你正在画布作业时直接操作。
如果你平时用键盘流,可以记一个很顺手的动作:选中要素后,直接按Ctrl+Shift+K(部分版本快捷键不同),也能快速调用显示选中项。快捷键在我记忆里不是特别统一,因为不同汉化包和版本会区别,所以建议新手先记住菜单路径,快捷键查看界面上图标提示即可。
2.3 搭配“缩放到选中要素”一起用,效果更好
“仅显示选中要素”负责清除干扰,但它不会自动帮你调整视图比例。如果你的选中要素在很密集的图斑群里,虽然其他图斑被隐藏了,但屏幕上还是整块区域的完整比例,那个你要看的地物依然小得像芝麻一样。
所以我在实操中,几乎每次执行完“仅显示选中要素”之后,马上会按下“缩放到选中要素”(Zoom to Selection),快捷键通常是Ctrl+Shift+Z。这样,画布就会自动把视口拉近到选中的要素范围,让目标占满视图,看细节就非常舒服。
这个组合熟练之后,整套动作可以做到两三秒完成:选中 -> 右键仅显示 -> 快捷键缩放到选中。做完之后,图面上干干净净,只有你需要的地物——即便这个图层原本有上万条记录,也不再影响你的观察效率。
2.4 取消“仅显示选中要素”,让全部要素回来
当你核对完,需要回到完整图层继续处理时,怎么恢复?操作方法很简单:在图层面板上再次右键图层,菜单中选择“显示全部要素”(Show All Features)。如果你的图层是通过其他过滤方式(如表达式筛选)进入的局部显示状态,也可以在图层面板下方找到“过滤图层”图标,点击后选择移除过滤器。
我在这里多说一句容易踩坑的点:如果当前处于“仅显示选中要素”状态,你把选中要素取消掉了,画布并不会自动变回完整图层。它仍然维持筛选状态,这时画布看起来就像图层“空”了一样,很多人还以为数据丢了,其实只是筛选条件还在,需要手动恢复“显示全部要素”。这种情况我遇到不止一次,新手上路尤其容易慌。
3. 编辑模式切换:为什么必须开启一个“总开关”才能改
3.1 先聊聊QGIS为什么设计这个开关
很多初学QGIS的朋友会问一个很实际的问题:“为什么我打开图层的属性表,直接双击字段值却改不了?为什么我用删除键删不掉一个多边形?”
这是因为QGIS在设计之初就考虑到了数据安全和误操作风险。如果你在浏览数据时,每一次点击、拖拽都有可能改变原始数据,那这个GIS软件就不能放心用了。所以,QGIS给每个矢量图层加上了一个“可编辑状态”的概念:默认是关闭的,只有用户在明确知道“我要改动这个图层”的前提下,手动打开编辑模式,才能修改数据。这个开关就像一个“编辑总闸”,合上之后工具才通电。
这个设计与Office中的“编辑保护”、CAD中的“锁定图层”思路很像。早期桌面GIS软件,比如ArcMap,也是类似机制:需要启动编辑会话,才能做修改。QGIS把它简化成了图层面板上的一个小铅笔图标,点击即切换。
3.2 开启编辑模式的几种方法
最常用、最直观的方式是在图层面板中,选中你要编辑的图层,让该图层处于高亮状态,然后点击工具栏上的“切换编辑模式”(Toggle Editing)按钮。这个按钮的图标是一支铅笔,开关后图标底色会有变化,提醒你当前处于编辑状态。也可以直接右键图层名,在菜单里找到“切换编辑模式”,快捷键一般是F2。
如果图层是从数据库(比如PostGIS、GeoPackage)里加载的,那么编辑模式开启时通常还会判断数据库连接权限。如果你对数据库只有读权限,即使点击铅笔也会被拒绝。这种场景在团队协作项目中很常见,需要稍微留意。
在我个人习惯里,平时用得最多的是按F2键。选定图层后,按一下F2,铅笔开关就打开了。再按一下F2,就退出了编辑模式。这个操作很快,尤其是在多个图层间来回切换编辑时,比鼠标找按钮效率高很多。
3.3 进入编辑模式后能做什么
一旦开启了编辑模式,整个界面会发生细微变化:工具栏上原本灰掉的编辑工具都变成可用状态。常用的操作有这些:
- 使用“节点工具”(Vertex Tool)拖动顶点,修改面或线的形状;
- 使用“添加要素”工具在图上画新的点、线、面;
- 使用“要素移动”工具,把某个地块移动或旋转到新位置;
- 在属性表中直接修改字段值,双击即可输入;
- 删除选中的要素,等等。
本质上,编辑模式就是把你从“观众”变成“操作员”。观众只能浏览,操作员才有权限动手。这个理念贯穿整个QGIS,从矢量编辑到栅格数据的另存处理,都是类似的逻辑。
另外,进入编辑模式后,QGIS会在画布上显示一个小的“编辑状态提示”。如果你开启了“正在编辑”面板,还能看到当前图层的坐标系、编辑状态等具体信息。在做数据生产时,多留意这个面板能避免很多低级错误。
3.4 保存和回滚:改完到底怎么退
这是我认为整个编辑模式里最值得反复强调的点。
当你完成了修改,不能直接关掉项目就走。你需要先确认这次改动要保留还是放弃:
- 如果要保留修改,点击工具栏上的“保存图层编辑”(Save Layer Edits)按钮,快捷键Ctrl+Shift+S。这会把修改真正写入数据源。
- 如果你想放弃本次所有修改,点击“取消所有编辑”(Rollback),快捷键Esc(弹窗里选择丢弃)。所有在当前编辑会话里的改动会全部撤销,回到打开编辑模式前的状态。
然后是退出编辑模式:点击铅笔图标,或者按F2。如果退出前还有未保存的修改,QGIS会弹窗询问“是否保存编辑?”此时要根据实际情况选择“保存”或“不保存”。
这里有个新手常犯的错误:改了几十处,中间忘记点击保存,到退出编辑时误选了“不保存”,结果辛辛苦苦改了半天的数据全没了。所以我个人的做法是见好就收:修改少量几个要素后立刻保存一次,再继续下一批,避免长时间不保存带来的风险。
还有一点,数据源如果是Shapefile,那么保存编辑时会把整个文件重写一次,如果数据量大,保存过程会明显卡顿,这是Shapefile格式的固有局限。如果改用GeoPackage格式,写入体验会好很多,而且支持多种几何类型共存。这也是为什么现在越来越多项目往GeoPackage迁移的原因之一。
4. 一套组合技实操:只看一个地块,然后修改它的属性
4.1 场景设定与数据准备
为了把前面两个功能串起来,我准备了一个典型场景:假设你有一个名为“地块”的矢量面图层,里面有两千多个地块,现在需要核实其中一个编号为“A-013”的地块,它的“地类名称”字段填的是“果园”,但你在现场核对后发现实际应该是“乔木林地”,需要把它改过来。
如果这个图层直接在屏幕上全量显示,找到A-013并不容易,就算找到了,要双击属性表改字段还得先确定这个地块对应的是哪一行。所以我们先要做“定位”,再做“聚焦”,再做“修改”。这一整套流程,就非常适合用“选中要素 + 仅显示选中要素 + 编辑模式”来走。
为了确保演示数据的干净,我一般会建议大家先用一个临时测试图层来练手。你可以新建一个临时图层,随便画几个方块,填几个属性,然后照着下面的流程走,熟悉后再拿真实项目数据操作。不要一上来就在生产数据上试,万一关键时刻点错按钮,会造成不必要的麻烦。
4.2 完整操作流程演示
第一步,打开QGIS,加载“地块”图层,同时建议加载一个在线影像或者基础底图作为参照。这样你在地块定位后能通过底图核对周围环境。
第二步,在图层上右键,选择“打开属性表”。在属性表上方的搜索框里输入A-013,回车。这样属性表会执行一个快速筛选,找到那一行记录。此时,这一行记录在表格中是可见的,但画布上不一定能直观看到这个地块。
第三步,在属性表中点击行首的方块,选中这一行记录。如果图层和属性表建立了双向联动,选中的行会在画布上高亮显示。如果画布没有自动联动,可以点击属性表工具栏上的“将画布移动到所选行”按钮,画布会跳到该要素的范围并高亮它。
第四步,回到图层面板,右键“地块”图层,点击“仅显示选中要素”。现在画布上就只剩A-013这一个地块了。此时用缩放工具或者直接滚动滚轮放大,就能看得非常清楚。
第五步,如果你还需要检查它周围的地物环境,可以临时关闭该图层的“仅显示选中要素”,回到完整状态查看邻接地块,或者保持筛选,在底图影像上查看它周边的地表覆盖特征。我个人会在这一步叠加高分辨率影像,核对边界和地类是否和影像一致。
第六步,确认确实需要修改后,选中“地块”图层,按F2进入编辑模式。此时在属性表里找到“地类名称”字段,双击当前值“果园”,输入“乔木林地”,回车。你会看到单元格值已经更改,但此时数据还没有真正写入文件。
第七步,点击“保存图层编辑”按钮,保存这次改动。再按F2退出编辑模式。为了避免误操作,保存并退出后,我通常会顺手点击“取消选择全部要素”,并且如果之前开启了“仅显示选中要素”,这时候恢复“显示全部要素”。
到这里,一次完整的“定位 -> 聚焦 -> 修改 -> 保存”流程就结束了。整个过程熟练后基本在几十秒内完成,比在几千个图斑中间来回缩放、硬找硬点要高效得多。
4.3 组合技背后的逻辑和原则
这套组合技本质上概括了一个通用的“目标聚焦”原则:在面对海量空间数据时,不要试图在大画面上手工找目标,而是通过属性条件、空间查询先缩小范围,再通过“仅显示选中要素”把画布内容清空到只剩目标,最后在编辑模式下修改。这个原则适用于数据核查、属性更新、拓扑检查等大量日常工作场景。
另外我建议,如果你经常需要做这种“按编号修改要素”的任务,可以把它固化成一个标准作业流程,写入项目文档,让同组成员都按这个流程走。因为实际多人协作时,最大的风险不是操作不会,而是每个人用不同的方法找到目标后,各自在界面上处于不同状态,结果改了哪几个要素都说不清。统一标准流程后,沟通成本会显著下降,出错的概率也会低很多。
4.4 关于在线底图和XYZ Tiles的关联度
在组合流程中,特别是在影像比对、边界核实阶段,大多数人都会在QGIS里加载在线底图。QGIS自带的XYZ Tiles入口可以快速接入一些公共地图服务,把影像或者电子地图作为检查底图使用。网上那个热词“qgis xyz tiles 高德地图”,指的就是通过XYZ Tiles功能加载国内常用在线地图服务商提供的瓦片底图。
这里我不展开写了,但是我的建议是:只要你的项目涉及实地核查、影像比对,就在工程里预先配好一个稳定的影像底图源。这样当你执行“仅显示选中要素”后,底图仍然保留下来,就能很直观地检查目标地物周围的实际地表情况。通过在线影像看清周边环境后,对“地类名称”“权属名称”等属性的判断会更准确。有些团队甚至会要求,在修改任何地物前,都必须先叠加影像或现场照片作为证据,这个习惯值得推广。
5. 高频问题与避坑速查
5.1 常见问题排查表
我整理了一份我在教学和项目支持中经常被问到的问题速查表,如果你也遇到类似情况,可以参考排查:
| 现象 | 大概率原因 | 解决方案 |
|---|---|---|
| 右键图层面板找不到“仅显示选中要素” | 当前没有选中任何要素,或选中的内容不在该图层里 | 先用选择工具确认选中,再右键查看菜单 |
| 执行仅显示选中要素后画布上一片空白 | 当前图层的选中要素是空的,或者筛选状态误开启 | 右键图层,选择“显示全部要素”恢复 |
| 双击属性表字段不能修改值 | 图层没有进入编辑模式 | 选中图层按F2,点击铅笔图标后再改 |
| 编辑工具图标都是灰色的 | 没有选中可编辑的矢量图层,或选中了栅格图层 | 在图层面板中选中矢量图层,再点击铅笔 |
| 修改完多个要素,点击铅笔图标退出时弹出保存询问,不知道该选哪个 | 之前的编辑没有主动保存 | 建议点保存,后续养成“改一批存一次”的习惯 |
| 只能选中要素,但不能删除/移动 | 图层处于只读状态,没有开启编辑模式 | 按F2开启编辑模式 |
| 从一个图层切换到另一个图层编辑,原来的修改不见了 | 多个图层的编辑会话是分开维护的 | 每个图层要分别保存和退出编辑 |
| 图层列表右键菜单里的“仅显示选中要素”和“过滤”混淆 | 两个入口相似,但作用和恢复方式不同 | 前者用“显示全部要素”恢复,后者用“移除过滤器”恢复 |
| 保存Shapefile时很长时间没有响应 | Shapefile数据量大时重写文件较慢 | 尽量使用GeoPackage,或耐心等待,不要中途强制关闭 |
| 属性表已筛选出一部分记录,但画布上还是全部要素 | 属性表筛选不等于画布筛选 | 用右键“仅显示选中要素”或设置图层过滤来控制画布显示 |
这张表是我自己平时带新人时常用的“诊断表”。遇到问题先对照现象和原因,一般能解决九成以上的困惑。
5.2 我从实际操作中总结的避坑心得
第一个心得,是关于“保存编辑”的习惯。很多人以为退出编辑模式时点“保存”就够了,但这里有一个微小但重要的差别:如果在同一个编辑会话里修改了上千个要素,退出编辑时点“保存”,实际上是把整个编辑会话里的内容一次性写入。如果期间系统崩溃或者误操作,待保存的修改缓存可能会损坏。我通常的做法是:每改完一个关键要素,马上Ctrl+Shift+S保存一次,尤其是在处理数据库型数据源时,分次提交比一次性提交安全得多,也方便追踪每次改动。
第二个心得,是关于“筛选状态”的管理。只要你使用了“仅显示选中要素”,界面上就会残留一个筛选器。这个筛选器和属性表的“筛选”、图层“表达式过滤”是不同机制,但视觉上非常容易混淆。如果你某一天发现图斑数量不对,先别急着怀疑数据坏了,马上检查是否存在“仅显示选中要素”之类的状态。我会习惯在量算面积、统计数量之前,先确认图层处于完整显示状态,否则统计结果会严重失真。
第三个心得,是关于快捷键的熟练度。对于频繁操作者,熟练使用快捷键是效率翻倍的关键。以我为例,“选中要素后仅显示”这个动作我已经形成肌肉记忆:先用选择工具点选目标,然后按快捷键缩放到选择,再执行仅显示选中要素,最后按F2进入编辑模式。整套动作几乎不用看菜单,眼睛始终盯着画布,这是长期使用练出来的。如果你想提高QGIS工作效率,建议给自己设定一个小目标:把常用的十个快捷键全部背下来,并且每周都刻意使用,一个月后会发现自己加班时间少了很多。
第四个心得,是关于数据备份。这个习惯不见得和技术细节有关,但在实际生产中特别重要。任何涉及大量编辑的工作,在开始之前都应该对原始数据进行一次备份。QGIS里面你可以直接复制一份数据文件,或者在Toolbox里使用“复制矢量图层”工具,把数据导出一份到备份目录,再开始编辑。千万不要在原始文件名上直接开工,因为一旦误保存了错误改动,有些错误是回不去的。
5.3 那些看起来“不对劲”其实正常的小细节
最后再聊几个我经常收到学员提问的小细节,帮你提前打个预防针。
比如,开启编辑模式后,属性表中的字段背景颜色会稍微发生一点变化吗?答案是看版本。新版的QGIS会在编辑状态时给正在编辑的图层前方显示一个铅笔图标,字段本身并不会明显变色,因此你可能会忽略自己还在编辑状态这件事。我建议大家养成一个习惯:当一个图层处理完,立刻退出编辑模式,不要让图层长期停留在可编辑状态。否则哪天画布上不小心拖了一个节点,保存时连你自己可能都没注意到。
再比如,“仅显示选中要素”之后点击其他空白区域,选中状态消失了怎么办?这是一个很容易被误解的操作。QGIS中点击画布空白处会取消选中,但并不会自动退出“仅显示选中要素”。如果此时画布看起来空无一物,而图层列表里的图层被误认为空数据,常见的解法我刚才说过了:右键图层选择“显示全部要素”。
还有一个和卫星影像相关的小场景:当你叠加在线底图影像时,如果在“仅显示选中要素”状态下拖动画面,可能会觉得底图定位特别不好用,以为软件卡了。其实这只是因为你的视野被锁定在那一小块目标区域,底图层面没有参与过滤,拖起来当然和全图视图不一样。如果你需要大范围浏览附近区域,建议先退出“仅显示选中要素”状态,而不是强行拖动。
5.4 从个人项目实践谈长期使用感受
我带过不少使用QGIS做国土、规划、林业数据处理的人,大家反馈最多的不是软件功能不够强,而是对“图层状态”这个概念没有建立起来。很多人习惯像操作Excel一样直接改数据,觉得QGIS为什么拦一道“编辑模式”,很不习惯。可一旦经历过因为没有编辑保护导致几何图形被意外移动、属性被覆盖的惨案,就会意识到这道“开关”是保护伞,而不是绊脚石。
“仅显示选中要素”也一样。当你面对上百个图层、几万条要素的时候,如果每次都想在大杂烩视图里精准定位,迟早会崩溃。学会聚焦,学会在合适的时机隐藏不相关的信息,才算真正开始用QGIS做正规的数据生产工作。这两个功能就是“聚焦”和“可控编辑”的最小组合,是所有人接触QGIS数据编辑前必须跨过的门槛。
从长期使用来看,QGIS的优势恰恰在于这种流程的自由度很高。你既可以完全用菜单点选,也可以通过工具栏配合快捷键走“键盘流”,甚至可以把常用操作录制成模型或脚本,把“定位要素 -> 仅显示选中 -> 打开编辑 -> 修改字段 -> 保存退出”的整体流程自动化。基础打牢之后,这些进阶玩法都会顺理成章地展开。如果暂时用不上太高阶的功能,好好掌握这一套快捷键和状态管理,日常效率也能提升一大截。
