QGIS矢量裁剪具体怎么做?叠加分析步骤?

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

引言

“QGIS矢量裁剪具体怎么做?叠加分析步骤?”这个问题,通常出现在你拿到一份行政区边界、研究区范围或项目红线后,想把道路、建筑、土地利用、POI 等矢量数据只保留在目标范围内的时候。

在 QGIS 里,矢量裁剪属于常见的叠加分析操作。它的核心不是简单“按显示范围截一刀”,而是根据两个图层的空间关系,生成一个新的矢量结果。本文以最常用的“用面图层裁剪另一个矢量图层”为例,讲清楚 QGIS矢量裁剪 的具体步骤、参数含义、常见错误和结果检查方法。

QGIS矢量裁剪具体怎么做与QGIS叠加分析步骤示意图
QGIS矢量裁剪的基本逻辑:用裁剪范围图层限制输入矢量图层的输出区域。

背景:什么时候需要做 QGIS矢量裁剪

QGIS矢量裁剪最典型的场景,是从一份较大范围的数据中提取某个研究区内的数据。例如:

  • 从全国道路数据中裁剪出某个区县范围内的道路。
  • 从省级土地利用数据中裁剪出项目红线内的地类图斑。
  • 从城市建筑物面数据中裁剪出规划片区内的建筑。
  • 从河流、管线、绿地等图层中提取行政边界内的要素。

这里要注意,QGIS矢量裁剪通常需要两个图层:

  • 输入图层:你想被裁剪的数据,可以是点、线、面。
  • 裁剪图层:用于限定范围的图层,一般是面图层,例如行政区、项目范围、缓冲区结果。

如果你只是想临时隐藏范围外的内容,不一定要裁剪;但如果你要生成新的数据文件、用于统计分析或后续制图,就应该使用 QGIS矢量裁剪 工具。

原理:QGIS矢量裁剪和叠加分析是什么关系

QGIS矢量裁剪本质上是叠加分析的一种。叠加分析是指把两个或多个空间图层按照位置关系进行计算,生成新的空间结果。

在裁剪操作中,QGIS 会判断输入图层的要素与裁剪图层的面范围是否相交:

  • 如果点落在裁剪范围内,点会被保留。
  • 如果线穿过裁剪范围,线会被截断,只保留范围内的部分。
  • 如果面与裁剪范围相交,面会被切割,只保留重叠部分。

这也是很多初学者容易误解的地方:QGIS矢量裁剪不是只按外包矩形裁剪,而是按裁剪图层的真实边界进行空间叠加计算。

因此,裁剪结果是否正确,主要取决于三个因素:

  • 两个图层的坐标系是否一致或能正确动态投影。
  • 裁剪图层的面几何是否有效。
  • 输入图层和裁剪图层是否确实存在空间重叠。

步骤:QGIS矢量裁剪具体怎么做

步骤一:加载输入图层和裁剪范围图层

  1. 打开 QGIS。
  2. 将需要被裁剪的矢量数据拖入图层面板,例如 roads.shp、landuse.gpkg 或 buildings.geojson。
  3. 再加载裁剪范围图层,例如 district_boundary.shp 或 project_area.gpkg。
  4. 在地图窗口中确认两个图层的位置是否能正确叠在一起。

如果两个图层看起来相距很远,或者一个图层显示在海里、另一个显示在陆地上,优先检查坐标系,而不是直接运行 QGIS矢量裁剪。

步骤二:检查图层坐标系

在图层面板中右键图层,选择“属性”,查看“信息”或“源”中的坐标参考系统。常见坐标系包括 EPSG:4326、CGCS2000、高斯-克吕格投影、Web Mercator 等。

QGIS支持动态投影显示,但在进行叠加分析时,最好让输入图层和裁剪图层处在适合分析的坐标系中,尤其是涉及面积、长度和精细边界切割时。

如果坐标系不一致,可以先使用:

  • 右键图层,选择“导出”中的“另存为”。
  • 在 CRS 中选择统一的目标坐标系。
  • 保存为 GeoPackage 或 Shapefile。

完成统一坐标系后,再做 QGIS矢量裁剪 会更稳妥。

步骤三:打开矢量裁剪工具

在 QGIS 菜单中依次点击:

矢量 → 地理处理工具 → 裁剪

也可以打开“处理工具箱”,搜索“裁剪”或“Clip”,找到“裁剪”算法。

不同版本的 QGIS 菜单名称可能略有差异,但处理工具箱中的“裁剪”工具是最稳定的入口。

步骤四:设置裁剪参数

在“裁剪”工具窗口中,重点设置以下参数:

  • 输入图层:选择需要被裁剪的矢量图层,例如道路、建筑、土地利用。
  • 叠加图层:选择作为裁剪范围的面图层,例如行政边界、研究区范围。
  • 已裁剪:设置输出结果,可以临时保存,也可以保存为文件。

建议不要只使用临时图层,除非你只是测试。正式工作中建议保存为 GeoPackage,例如:

project_area_roads_clip.gpkg

GeoPackage 对中文字段、长字段名和多图层管理通常比 Shapefile 更友好。

步骤五:运行裁剪并查看结果

点击“运行”后,QGIS 会生成新的裁剪结果图层。你可以先关闭输入图层,只保留裁剪范围和结果图层,检查结果是否全部位于裁剪范围内。

如果输入图层是线或面,注意观察边界位置是否被切割。如果输入图层是点,注意检查范围外的点是否已经被删除。

步骤六:导出最终成果

如果结果是临时图层,需要右键结果图层,选择“导出 → 另存为”,保存为正式数据文件。

常用输出格式建议如下:

  • GeoPackage:推荐用于 QGIS 项目、字段较多、多图层管理。
  • Shapefile:适合和旧系统或部分行业软件交换,但字段名长度有限。
  • GeoJSON:适合 WebGIS 前端展示和接口传输,但大数据量时文件可能较大。

常见坑:QGIS矢量裁剪失败或结果不对怎么办

坑一:裁剪结果为空

如果运行后结果图层没有任何要素,优先检查以下问题:

  • 输入图层和裁剪图层是否真的有空间重叠。
  • 两个图层的坐标系是否定义正确。
  • 裁剪图层是否为面图层,而不是线或点。
  • 图层是否存在筛选条件,导致参与裁剪的要素为空。

一个简单验证方法是:选中裁剪范围图层,右键选择“缩放到图层”;再对输入图层做同样操作。如果两个图层位置完全不重合,就无法得到有效裁剪结果。

坑二:图层看起来重合,但裁剪结果异常

这种情况常见于坐标系定义错误。比如数据本来是 CGCS2000 经纬度坐标,却被错误定义成 Web Mercator;或者本来是投影坐标,却被当成经纬度坐标。

注意,“定义坐标系”和“转换坐标系”不是一回事:

  • 定义坐标系:告诉 QGIS 这份数据原本是什么坐标系,不改变坐标值。
  • 转换坐标系:把坐标值从一个坐标系计算到另一个坐标系。

如果原始坐标系定义错了,直接另存为新坐标系也可能继续错。应先确认原数据真实坐标系,再进行转换。

坑三:裁剪时报几何错误

如果 QGIS 提示几何无效、拓扑错误或某些要素处理失败,可以先修复几何。

常用方法:

  1. 打开处理工具箱。
  2. 搜索“修复几何”或“Fix geometries”。
  3. 分别对输入图层和裁剪图层运行修复。
  4. 用修复后的图层重新执行 QGIS矢量裁剪。

面图层常见的无效几何包括自相交、多边形环方向异常、重复节点和空几何。这些问题在叠加分析时很容易导致裁剪失败。

坑四:裁剪后属性字段缺失

QGIS 的“裁剪”工具通常保留输入图层的属性字段,但不会自动把裁剪图层的属性字段合并进结果。如果你想让结果同时包含输入图层属性和裁剪范围属性,需要使用“相交”工具,而不是“裁剪”工具。

例如,你希望道路裁剪后带上所属区县名称,应该考虑使用叠加分析中的“相交”,而不是单纯 QGIS矢量裁剪。

方法比较:裁剪、相交、按位置提取怎么选

QGIS 中和矢量裁剪相似的工具很多,初学者最容易混淆的是“裁剪”“相交”和“按位置提取”。下面用实际用途区分。

工具 适用场景 结果特点 是否切割几何
裁剪 只保留输入图层在裁剪范围内的部分 主要保留输入图层属性
相交 需要叠加两个图层,并保留双方属性 结果包含输入图层和叠加图层属性
按位置提取 筛选与某范围相交、包含或相邻的要素 通常保留完整原始要素 通常不切割
按范围裁剪 按矩形范围快速截取 适合粗略范围处理 取决于具体算法

如果你的需求是“只要研究区内部那一部分几何”,选择 QGIS矢量裁剪。 如果你的需求是“裁剪后还要带上区县名称、分区编号等裁剪图层字段”,优先选择“相交”。 如果你的需求只是“找出与范围有关系的完整要素”,可以用“按位置提取”。

检查清单:运行 QGIS矢量裁剪 前后要确认什么

为了减少返工,建议每次做 QGIS矢量裁剪 前后都按下面的清单检查。

裁剪前检查

  • 输入图层是否加载正常。
  • 裁剪图层是否为面图层。
  • 两个图层是否在地图上真实重合。
  • 坐标系是否定义正确。
  • 裁剪范围是否只有目标区域,是否存在多余面。
  • 输入图层和裁剪图层是否存在无效几何。
  • 是否需要先筛选目标区域,例如只裁剪某一个区县。

裁剪后检查

  • 结果图层是否有要素。
  • 结果是否全部位于裁剪范围内。
  • 线和面是否在边界处正确切割。
  • 属性字段是否符合预期。
  • 结果图层坐标系是否正确。
  • 是否已经保存为正式文件,而不是临时图层。
  • 是否需要重新计算面积、长度等字段。

特别提醒:如果裁剪的是面数据,裁剪后原有面积字段不会自动更新。因为字段只是旧属性值,不会随着几何变化自动重新计算。你需要使用字段计算器重新计算面积。

FAQ:QGIS矢量裁剪常见问题

QGIS矢量裁剪可以裁剪点、线、面吗?

可以。输入图层可以是点、线或面,但裁剪图层通常应为面图层。点会按范围保留或删除,线和面会在裁剪边界处被切割。

QGIS叠加分析步骤中,裁剪和相交有什么区别?

裁剪主要用于保留输入图层在裁剪范围内的几何部分,结果通常保留输入图层属性。相交会计算两个图层的重叠部分,并把两个图层的属性都带入结果。需要叠加属性时,用相交更合适。

为什么 QGIS矢量裁剪 后结果为空?

最常见原因是两个图层没有实际重叠、坐标系定义错误、裁剪图层不是面图层,或者图层存在筛选条件。建议先分别缩放到两个图层,检查位置是否一致,再检查坐标系。

裁剪前需要统一坐标系吗?

QGIS可以动态投影显示不同坐标系的数据,但做正式分析时,建议把输入图层和裁剪图层转换到统一且适合本地区的坐标系。这样可以减少叠加分析误差和异常。

QGIS裁剪后面积为什么没有变化?

如果你看到的是属性表中原来的面积字段,它不会自动更新。裁剪改变了几何,但不会自动重算已有字段。需要用字段计算器重新计算面积字段。

裁剪范围有多个面时会怎样?

QGIS会以这些面的整体范围参与裁剪。若多个面之间有重叠,可能导致结果复杂或重复风险。正式处理前,建议根据需求先筛选目标面,或使用“融合”工具把多个裁剪面合并成一个范围。

结论

QGIS矢量裁剪的核心流程并不复杂:加载输入图层和裁剪范围,检查坐标系与空间重叠,打开“裁剪”工具,设置输入图层、叠加图层和输出路径,然后检查结果。

真正容易出问题的地方,通常不是按钮点错,而是坐标系、无效几何、裁剪范围选择错误和工具选择不当。只要理解裁剪属于叠加分析,并能区分“裁剪”“相交”“按位置提取”,你就可以更稳定地完成 QGIS叠加分析步骤,并得到可用于制图、统计和后续空间分析的成果数据。