QGIS入门教程六: 矢量图形怎么画?拓扑错误如何修?

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

QGIS入门教程六: 矢量图形怎么画?拓扑错误如何修? 这篇教程面向刚开始使用 QGIS 的同学,重点解决两个非常常见的问题:如何在 QGIS 中新建并绘制点、线、面矢量图形,以及绘制完成后如何检查和修复拓扑错误。

如果你正在做地块边界、道路中心线、采样点、管线、行政区面等数据,手工矢量化几乎是绕不开的基础操作。但很多初学者会遇到这样的情况:面和面之间有缝隙,边界重叠,线没有真正相接,明明看起来闭合的面却无法通过检查。这些问题都属于典型的拓扑质量问题。

QGIS入门教程六 矢量图形怎么画 拓扑错误如何修
QGIS 矢量图形绘制与拓扑错误修复的基本流程:建图层、开启编辑、捕捉绘制、检查拓扑、修复错误。

引言:QGIS矢量图形绘制为什么容易出错

在 QGIS 中绘制矢量图形,看起来只是用鼠标点几下,但实际涉及图层类型、坐标系、字段结构、编辑状态、捕捉设置和拓扑规则。任何一个环节没设置好,都可能导致后续空间分析、面积统计、叠加分析或制图输出出现问题。

例如,两个相邻地块边界看上去贴合,但放大后发现中间有一条很细的缝;道路交叉口看起来相交,但线端点没有真正吸附到一起;面图层内部有自相交,导致计算面积异常。这些问题不一定影响肉眼浏览,却会直接影响 GIS 数据质量。

所以,本教程不只是讲“怎么画”,还会讲“怎么画得干净”,也就是通过捕捉、拓扑编辑和检查工具,让 QGIS 矢量图形更适合后续分析。

背景:QGIS中点、线、面矢量图形分别适合画什么

QGIS 的矢量图层主要分为三类:点、线、面。新建图层前必须先想清楚对象类型,因为点图层不能直接画面,线图层也不能直接保存面边界。

几何类型 适合表示 常见例子 容易出现的问题
位置对象 采样点、井点、学校、监测站 坐标偏移、点位重复、属性漏填
线 线状对象 道路、河流、管线、轨迹 线未连接、悬挂线、重复线段
有边界和范围的对象 地块、建筑物、行政区、湖泊 面重叠、面缝隙、自相交、未闭合

如果你只是标注一个设施位置,应选择点图层;如果要画道路或河流,应选择线图层;如果要表达地块范围、建筑轮廓或研究区边界,应选择面图层。这个判断会影响后面的拓扑检查规则。

原理:拓扑错误到底是什么

拓扑是 GIS 中描述空间对象之间连接、邻接、包含和相交关系的一套规则。简单说,拓扑关注的不是图形“看起来像不像”,而是几何关系“是否正确”。

在 QGIS 矢量图形编辑中,常见拓扑错误包括以下几类:

  • 面重叠:两个本应相邻的面有部分区域压在一起,导致面积重复统计。
  • 面缝隙:两个本应共边的面之间留下空白区域,导致研究区不连续。
  • 自相交:一个面或一条线自己交叉自己,可能导致几何无效。
  • 线未连接:道路或管线端点没有吸附到目标线段或节点上,影响网络分析。
  • 重复要素:同一位置存在两个完全或近似相同的点、线、面。
  • 悬挂线:线端点没有连接到应连接的对象,在道路网、管网数据中尤其常见。

QGIS 修拓扑错误的核心思路有三步:第一,绘制前设置捕捉,减少错误产生;第二,绘制后使用拓扑检查或几何检查发现问题;第三,针对不同错误采用节点编辑、修复几何、删除重复、填补缝隙等方法处理。

步骤:QGIS矢量图形怎么画

步骤一:新建矢量图层

在 QGIS 中绘制矢量图形,建议先创建一个新的 GeoPackage 图层。GeoPackage 是一种常用的空间数据文件格式,扩展名为 .gpkg,比 Shapefile 更适合新项目管理字段、编码和多图层数据。

  1. 打开 QGIS,加载底图或参考数据。
  2. 点击菜单 图层
  3. 选择 创建图层
  4. 选择 新建 GeoPackage 图层
  5. 设置数据库文件位置,例如 project_data.gpkg
  6. 填写图层名称,例如 parcel_polygonroad_linesample_point
  7. 选择几何类型:点、线或面。
  8. 设置坐标参考系统,通常应与项目数据一致。
  9. 添加必要字段,例如编号、名称、类型、备注。
  10. 点击确定,完成图层创建。

如果你只是练习,也可以新建临时图层。但正式项目不建议长期使用临时图层,因为关闭工程后容易丢失。

步骤二:确认坐标系是否正确

开始绘制前,要检查图层坐标系。坐标系不一致不一定会阻止你画图,但可能导致位置偏移、面积计算不准或与其他数据无法正确叠加。

  • 如果你画的是经纬度数据,常见坐标系是 EPSG:4326
  • 如果你需要计算面积、距离,建议使用合适的投影坐标系。
  • 如果已有项目底图或调查数据,新图层应尽量使用相同或兼容的坐标系。

特别注意:不要只看图层“显示在一起”就认为坐标系没问题。QGIS 有动态投影显示能力,即使两个图层坐标系不同,也可能在地图窗口中看起来能对齐。

步骤三:开启编辑模式

新建图层后,需要进入编辑状态才能画图。

  1. 在图层面板中选中目标图层。
  2. 点击工具栏中的铅笔图标,开启编辑模式。
  3. 根据图层类型选择添加点、添加线或添加面工具。
  4. 在地图窗口中开始绘制。

点图层通常点击一次即可生成一个点;线图层需要连续点击形成折线,右键结束;面图层需要沿边界逐点点击,最后右键结束并形成闭合面。

步骤四:填写属性信息

每画完一个要素,QGIS 通常会弹出属性表单。这里建议至少填写唯一编号和名称,避免后期无法区分对象。

字段名 建议类型 用途
id 整数 唯一编号
name 文本 对象名称
type 文本 分类字段
remark 文本 备注说明

属性字段不是越多越好。入门阶段建议先保证字段清晰、类型正确、必填项不遗漏。

步骤五:保存编辑结果

绘制完成后,不要忘记保存编辑内容。

  1. 点击保存图层编辑按钮。
  2. 确认没有报错提示。
  3. 再次点击铅笔图标,退出编辑模式。
  4. 右键图层,打开属性表,检查要素数量和属性是否正确。

很多初学者画完后直接关闭 QGIS,结果没有保存编辑内容。建议养成“画一段、保存一次”的习惯。

步骤:绘制前先设置捕捉,减少拓扑错误

如果要修拓扑错误,最好的方法不是等错误出现后再修,而是在绘制前启用捕捉。捕捉可以让鼠标自动吸附到已有点、线段或节点上,从源头减少面缝隙、边界不重合和线端点未连接。

开启捕捉工具栏

  1. 在 QGIS 顶部菜单中选择 项目
  2. 打开 捕捉选项
  3. 选择需要参与捕捉的图层。
  4. 设置捕捉类型为顶点、线段,或顶点和线段。
  5. 设置合适的捕捉容差。
  6. 开启拓扑编辑选项。

捕捉容差可以理解为“鼠标离目标多近时自动吸附”。容差太小,吸附不明显;容差太大,可能吸到错误对象。初学者可以先使用像素单位,例如 10 到 15 像素,再根据数据比例尺调整。

点、线、面绘制时的捕捉建议

图层类型 推荐捕捉设置 原因
按需要捕捉到参考线或参考面边界 保证采样点落在正确位置
线 捕捉顶点和线段 保证道路、河流、管线能正确连接
捕捉顶点和线段,并开启拓扑编辑 保证相邻面共边,减少缝隙和重叠

对于地块、行政区、建筑轮廓等面数据,尤其建议开启拓扑编辑。这样修改公共边界时,相邻面边界可以一起调整,避免一边改了另一边没改。

步骤:QGIS拓扑错误如何检查

QGIS 检查拓扑错误有多种方法,入门阶段可以优先掌握两个工具:几何有效性检查和拓扑检查。前者关注单个几何本身是否有效,后者关注多个要素之间的空间关系是否符合规则。

方法一:检查几何有效性

几何有效性检查适合发现自相交、环方向异常、无效面等问题。

  1. 打开 处理工具箱
  2. 搜索 检查有效性Check validity
  3. 输入需要检查的矢量图层。
  4. 选择输出有效要素、无效要素和错误位置。
  5. 运行工具。
  6. 查看错误点图层,定位具体问题。

如果一个面存在自相交,QGIS 可能会在错误位置输出一个点。你可以放大到该位置,用节点工具调整交叉节点。

方法二:使用拓扑检查器

拓扑检查器适合检查面之间是否有重叠、是否有缝隙,线是否有悬挂端点等问题。不同 QGIS 版本中插件名称和入口可能略有差异,如果没有看到相关面板,可以先到插件管理器中确认是否启用。

常见拓扑规则包括:

  • 面图层不能有重叠。
  • 面图层不能有缝隙。
  • 线图层不能有悬挂端点。
  • 线图层不能有重复线。
  • 点图层不能有重复点。
  • 一个图层中的要素必须被另一个面图层包含。

拓扑检查的关键是规则要符合数据需求。比如行政区面通常不允许重叠,也不应有缝隙;但生态斑块或服务范围数据有时允许重叠,因此不能机械套用规则。

步骤:QGIS拓扑错误如何修

修复一:面重叠

面重叠常出现在手工画相邻地块时。两个面边界没有共用同一条边,而是各画各的,导致局部压盖。

  1. 打开拓扑检查结果,定位重叠区域。
  2. 开启图层编辑模式。
  3. 启用捕捉和拓扑编辑。
  4. 使用节点工具选中其中一个面的边界节点。
  5. 将边界节点移动到正确的公共边界位置。
  6. 必要时删除多余节点或重画局部边界。
  7. 保存编辑并重新运行拓扑检查。

如果重叠区域较大,手工调整效率低,可以考虑用差集、裁剪或重建面边界的方式处理。但入门阶段建议先理解节点编辑,因为这是修拓扑错误最基础的技能。

修复二:面缝隙

面缝隙是相邻面之间出现空白区域。它常见于地块边界、行政区边界和土地利用图斑编辑。

  1. 放大到缝隙位置。
  2. 确认缝隙是错误,还是实际存在的空白区域。
  3. 开启捕捉到顶点和线段。
  4. 用节点工具调整相邻面的边界节点。
  5. 让两个面的公共边界完全贴合。
  6. 重新检查是否仍有缝隙。

不要看到空白就直接填面。某些数据中,河流、水域、道路可能本来就不属于相邻地块。如果数据模型要求这些对象单独成面,应先确认业务规则。

修复三:自相交面

自相交通常是画面时点击顺序错误造成的。比如一个面边界像“8”字一样交叉,这种几何在很多空间分析工具中会被视为无效。

  1. 运行几何有效性检查。
  2. 定位错误点。
  3. 开启编辑模式。
  4. 使用节点工具查看交叉附近的节点顺序。
  5. 拖动节点或删除错误节点,让边界不再交叉。
  6. 必要时删除该要素并重新绘制。

对于复杂面,自动“修复几何”工具可能能处理部分问题,但结果不一定符合你的业务边界。修复后一定要叠加原始参考图层核对。

修复四:线未连接和悬挂线

线未连接在道路网、排水管网、供水管网中非常常见。视觉上两条线似乎相接,但端点没有真正落在同一节点上。

  1. 开启端点捕捉。
  2. 放大到问题位置。
  3. 使用节点工具选中线端点。
  4. 将端点拖动并吸附到目标线的端点或线段上。
  5. 如果需要在线段中间形成连接点,可使用分割线工具或节点编辑方式处理。
  6. 保存后重新检查悬挂端点。

如果线数据用于网络分析,只是视觉相交还不够,必须保证节点连接关系正确。否则最短路径、连通性分析和管网追踪都可能失败。

修复五:重复要素

重复点、重复线、重复面会影响统计、制图和空间分析。比如一个采样点重复两次,统计数量就会偏大。

  1. 打开处理工具箱。
  2. 搜索删除重复几何或相关工具。
  3. 选择目标图层作为输入。
  4. 输出去重后的图层。
  5. 人工抽查重点区域,确认没有误删。

如果两个要素几何相同但属性不同,不要直接删除。应先判断它们是否代表不同业务对象。

常见坑:QGIS矢量图形绘制和拓扑修复容易忽略的问题

坑一:没开捕捉就开始画

这是最常见的问题。没开捕捉时,相邻面边界很难完全重合,线端点也很难精准连接。后期修复会比前期设置捕捉更费时间。

坑二:只在小比例尺下检查

在全图视图下看不出问题,不代表数据没有问题。很多面缝隙和线未连接只有放大到足够比例尺才能看见。

坑三:把显示效果当成真实几何

QGIS 的符号样式、线宽和透明度可能掩盖错误。例如两条线看起来接上了,实际上只是符号线宽覆盖在一起。拓扑检查看的是几何,不是样式。

坑四:坐标系不适合就直接算面积

经纬度坐标系下的面积和距离计算容易产生误解。需要面积统计时,应使用适合研究区的投影坐标系,或在字段计算器中明确使用椭球面积函数和正确设置。

坑五:自动修复后不复核

自动修复几何可以处理部分无效几何,但它不知道你的业务边界。修复后必须检查形状是否被改变,尤其是地块、行政边界和规划红线数据。

方法比较:手工编辑、拓扑检查和自动修复怎么选

方法 适合场景 优点 限制
手工节点编辑 少量错误、边界需要精确控制 可控性高,适合学习基础 效率较低,依赖人工判断
捕捉和拓扑编辑 正在绘制新数据 从源头减少错误 需要提前设置,容差不当会误吸附
几何有效性检查 检查自相交、无效面、异常几何 定位明确,适合质量检查 主要检查几何本身,不等于完整拓扑规则
拓扑检查器 检查重叠、缝隙、悬挂线等规则 适合批量发现空间关系问题 规则必须根据数据模型设置
自动修复几何 批量处理无效几何初筛 速度快,适合大数据预处理 结果可能不符合业务边界,需要复核

实际工作中,推荐组合使用:绘制前设置捕捉,绘制中及时保存和检查,绘制后运行几何有效性检查和拓扑检查,最后对错误逐个修复并复核。

检查清单:画完矢量图形后这样验收

完成 QGIS 矢量图形绘制后,可以按下面的清单检查一遍。这个流程适合地块、道路、采样点、管线等常见数据。

  • 图层几何类型是否正确:点、线、面没有选错。
  • 图层坐标系是否与项目数据一致或可正确转换。
  • 是否保存了编辑内容,并退出编辑模式。
  • 属性字段是否完整,编号、名称、分类是否填写。
  • 点图层是否存在重复点或明显偏移点。
  • 线图层是否存在悬挂线、未连接线、重复线。
  • 面图层是否存在重叠、缝隙、自相交。
  • 是否运行过几何有效性检查。
  • 是否按业务规则运行过拓扑检查。
  • 自动修复后的结果是否人工复核过。
  • 是否另存了修复前备份,避免误改无法恢复。

建议初学者每次编辑前先复制一份原始图层。修拓扑错误时,备份比后悔更重要。

FAQ:QGIS矢量图形绘制与拓扑修复常见问题

QGIS画面时为什么总是闭合不了?

面图层绘制时不需要手动点击第一个点来闭合,通常右键结束后 QGIS 会自动闭合。如果无法生成面,可能是图层未处于编辑模式、几何类型不是面、点击点数不足,或当前工具不是添加面要素工具。

QGIS矢量图形怎么画得更准?

先加载可靠的参考底图或已有数据,再设置合适坐标系,开启捕捉到顶点和线段。绘制时尽量放大到合适比例尺,不要在过小比例尺下画细节边界。

QGIS拓扑错误如何修最快?

如果错误数量少,用节点工具手工修最稳。如果错误很多,先用几何有效性检查和拓扑检查定位问题,再结合修复几何、删除重复、批量处理工具处理,最后人工抽查重点区域。

面图层有缝隙一定是错误吗?

不一定。要看数据规则。如果行政区边界应完整覆盖研究区,那么缝隙通常是错误。如果两个地块之间本来有道路、河流或未调查区域,空白可能是合理的。修复前应先确认业务含义。

为什么拓扑检查没有发现我看到的问题?

可能是拓扑规则没有设置正确,也可能是图层没有加入检查范围。还有一种情况是你看到的是符号显示问题,而不是几何问题。建议同时使用属性表、节点工具和几何检查结果确认。

QGIS可以自动修复所有拓扑错误吗?

不能。自动工具可以修复部分无效几何,但拓扑错误往往涉及业务规则,比如哪个面该保留、边界该靠哪一侧、道路是否应该连通。这类问题需要人工判断。

Shapefile和GeoPackage哪个更适合练习矢量编辑?

建议优先使用 GeoPackage。它支持较好的字段管理、中文兼容性和多图层存储。Shapefile 仍然常见,但字段名长度、编码和文件组成方面限制更多。

结论:先规范绘制,再修拓扑错误

QGIS入门教程六: 矢量图形怎么画?拓扑错误如何修? 这类问题的关键,不是记住某一个按钮,而是建立正确的编辑流程:先选对点线面类型和坐标系,再开启捕捉和拓扑编辑,绘制后用几何有效性检查与拓扑检查发现问题,最后按错误类型逐项修复。

对于初学者来说,最值得养成的习惯有三个:绘制前设置捕捉,编辑中经常保存,提交前一定检查拓扑。只要这三点做到位,QGIS 矢量图形的质量会明显提高,后续空间分析、制图和数据交付也会稳定得多。