QGIS坐标转换总是出错?五分钟掌握投影变换操作(附:参数对照表)

ArcPy
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

如果你在做项目数据叠加、成果出图或坐标入库时遇到“图层对不上、坐标转换后位置偏移、导出数据坐标仍然不对”,这篇QGIS坐标转换总是出错?五分钟掌握投影变换操作(附:参数对照表)会帮你把 QGIS 坐标转换的关键步骤、常见错误和参数选择一次理清。

引言:QGIS坐标转换为什么经常出错

很多同学以为在 QGIS 右下角改一下工程坐标系,数据就完成了坐标转换。实际上,这只是改变了地图显示方式,并没有真正改写图层数据的坐标参考系统。

QGIS坐标转换最容易出错的地方,通常不是软件操作复杂,而是混淆了三个概念:图层坐标系工程坐标系重新投影导出。只要这三件事分清楚,大多数投影变换问题都能快速定位。

QGIS坐标转换与QGIS投影变换操作流程示意图
QGIS坐标转换的核心流程:先确认原始坐标系,再决定是否需要重新投影导出。

背景:先判断你遇到的是哪一种坐标问题

在 QGIS 中看到图层位置异常时,不要马上反复转换。先判断问题类型,否则很容易把原本正确的数据转换坏。

情况一:图层本身没有坐标系信息

常见于 Shapefile 的 .prj 文件丢失,或者 CSV 点坐标导入时没有指定坐标参考系统。此时 QGIS 不知道这些坐标数字应该按哪套坐标系解释。

这种情况需要做的是定义坐标系,不是投影变换。定义坐标系只是告诉 QGIS“这批坐标原本属于哪个 CRS”,不会改变坐标数值。

情况二:图层有坐标系,但和底图对不上

如果图层已经有 CRS,但和在线底图、行政区或其他数据存在偏移,可能是坐标系选错、数据源坐标说明不准确,或者涉及不同基准面之间的转换参数。

例如,WGS 84 经纬度数据误设成 CGCS2000 经纬度,短距离看起来可能差别不明显,但在精细项目中会产生偏差。

情况三:显示正常,但导出的成果坐标不对

这通常是因为你只修改了工程坐标系,没有在“另存为”时选择目标 CRS。QGIS 的动态投影显示只影响屏幕显示,不等于已经生成了新坐标系的数据文件。

原理:QGIS坐标转换、定义坐标系和工程坐标系的区别

要正确完成 QGIS坐标转换,必须理解下面三个动作的差异。

操作 作用 是否改变坐标数值 适用场景
设置工程坐标系 控制地图画布显示坐标系 临时查看、叠加浏览、出图显示
定义图层坐标系 告诉 QGIS 原始数据属于哪个 CRS 数据缺少坐标系信息或坐标系被误设
另存为并选择目标 CRS 生成新坐标系下的数据 成果提交、数据入库、统一坐标系分析

简单说:坐标系定义错了,先修定义;坐标系不同但定义正确,再做投影变换。

在 QGIS 中,CRS 是 Coordinate Reference System 的缩写,中文通常叫坐标参考系统。它不仅包括经纬度或投影坐标,还包含基准面、椭球体、单位和投影参数等信息。

步骤:五分钟完成QGIS投影变换操作

下面以最常见的需求为例:将一个原始图层转换为指定目标坐标系,例如从 WGS 84 转为 CGCS2000 / 高斯-克吕格投影,或从地方投影统一到项目要求坐标系。

步骤一:查看原始图层坐标系

  1. 在 QGIS 图层面板中右键目标图层。
  2. 选择属性
  3. 进入信息页面。
  4. 查看 CRS、EPSG 编码、单位和范围。

如果图层坐标范围类似 116.3, 39.9,通常是经纬度坐标;如果坐标范围类似 39500000, 4400000500000, 3400000,通常是投影坐标。

步骤二:确认不是“缺少坐标系”问题

如果图层属性中显示 CRS 未知,或者加载后出现在非常奇怪的位置,先不要执行重新投影。你需要先为图层指定正确的原始坐标系。

  1. 右键图层。
  2. 选择设置图层 CRS
  3. 选择数据原本应该属于的坐标系。
  4. 观察是否能与参考数据正确叠加。

注意,这一步不是 QGIS投影变换,只是修正坐标系声明。只有原始 CRS 正确,后续坐标转换才有意义。

步骤三:设置工程坐标系用于检查显示

  1. 点击 QGIS 右下角 CRS 按钮。
  2. 搜索目标坐标系名称或 EPSG 编码。
  3. 将工程坐标系设置为项目要求的 CRS。
  4. 打开“即时 CRS 变换”显示效果。

这一步可以帮助你检查图层在目标坐标系下的显示效果,但它不会生成新数据。

步骤四:使用“另存为”进行真正的坐标转换

  1. 右键需要转换的图层。
  2. 选择导出
  3. 点击另存为
  4. 格式可选择 GeoPackage、ESRI Shapefile 或 GeoJSON。
  5. 在 CRS 选项中选择目标坐标系。
  6. 设置保存路径和文件名。
  7. 点击确定,生成新的转换结果图层。

这一步才是真正改变坐标数值的 QGIS坐标转换。转换后建议把新图层重新加载到空工程中检查,避免被旧工程的显示设置误导。

步骤五:验证转换结果是否正确

完成投影变换后,不要只看“图层加载成功”。建议按下面方法检查:

  • 查看新图层属性中的 CRS 是否为目标坐标系。
  • 打开属性表,检查坐标字段或几何范围是否符合目标单位。
  • 与可靠参考数据叠加,例如行政区边界、控制点或项目底图。
  • 随机抽查几个点位,查看偏移是否在可接受范围内。
  • 使用 QGIS 的测量工具检查距离、面积单位是否正确。

常见坑:QGIS坐标转换出错的高频原因

坑一:把设置工程坐标系当成投影变换

这是最常见错误。工程坐标系只负责地图画布如何显示,不会改变源数据。如果你把数据发给别人,对方仍然会看到原始坐标系。

坑二:对未知坐标系数据直接重新投影

如果原始 CRS 是错的,再转换到目标 CRS,结果一定会错。正确顺序是:先定义正确原始 CRS,再执行 QGIS投影变换。

坑三:经纬度坐标和投影坐标混用

经纬度坐标单位是度,投影坐标单位通常是米。如果你在经纬度坐标系下计算面积或距离,结果经常不符合工程需求。面积计算前通常应转换到合适的投影坐标系。

坑四:选择了相似但不相同的 CRS

很多坐标系名称很接近,例如 WGS 84、CGCS2000、Web Mercator、UTM 分带、高斯-克吕格分带。名称相似不代表参数相同。项目成果最好以甲方或技术设计书中的 EPSG 编码和中央经线为准。

坑五:Shapefile 文件缺少配套文件

Shapefile 不是单个文件,至少应包含 .shp.shx.dbf,坐标系信息通常在 .prj 中。如果 .prj 缺失,QGIS 可能无法自动识别坐标系。

方法比较:定义坐标系、另存为、处理工具箱怎么选

方法 入口 适合场景 注意事项
设置图层 CRS 右键图层,设置图层 CRS 原始数据缺少或误设 CRS 不会改变坐标值,不能当作转换工具
另存为目标 CRS 右键图层,导出,另存为 单个图层快速投影变换 需要明确原始 CRS 和目标 CRS
重新投影图层工具 处理工具箱,矢量通用,重新投影图层 规范化处理流程、批处理、模型构建 适合可重复工作流
GDAL ogr2ogr 命令行或处理工具箱 大量数据、自动化转换 需要熟悉参数和编码设置

如果只是转换一个图层,用“另存为”最快;如果是项目中的标准流程,建议使用“重新投影图层”工具,并把参数记录到处理模型中,方便复现。

参数对照表:常见坐标转换选项怎么理解

参数或选项 含义 建议
源 CRS 原始图层真实坐标系 必须先确认,不能凭感觉选择
目标 CRS 转换后需要得到的坐标系 以项目规范、数据库要求或制图要求为准
EPSG 编码 坐标系的标准编号 优先使用 EPSG 编码减少误选
单位 度、米或其他单位 面积和距离分析通常优先使用米制投影坐标系
坐标范围 图层几何的最小最大坐标 用于判断数据是否像经纬度或投影坐标
转换参数 不同基准面之间的转换设置 精度要求高时应按测绘成果或项目说明设置

对于普通制图和入门练习,选择正确 EPSG 通常已经足够;但对于工程测量、确权、管线、控制点等高精度数据,不能忽略基准面转换参数。

检查清单:转换前后必须确认的 10 件事

  • 原始数据是否有明确坐标系来源说明。
  • QGIS 图层属性中的 CRS 是否与数据说明一致。
  • 坐标值范围是否符合该坐标系的常见范围。
  • 是否误把工程坐标系设置当成数据转换。
  • 目标 CRS 是否来自项目要求,而不是随手搜索选择。
  • 是否选择了正确分带、中央经线和单位。
  • 转换后是否生成了新文件,而不是只改变显示。
  • 新图层是否能与可靠参考数据叠加。
  • 距离、面积测量结果是否符合业务常识。
  • 是否保留原始数据备份,避免重复转换造成混乱。

FAQ:QGIS坐标转换常见问题

QGIS坐标转换后图层还是偏移,怎么办?

先检查原始 CRS 是否正确。如果原始坐标系本来就设错了,重新投影只会把错误继续传递。其次检查目标 CRS 是否选对,尤其是 CGCS2000、高斯-克吕格分带、UTM 分带和 Web Mercator 之间不要混用。

QGIS右下角改坐标系算不算投影变换?

不算。右下角修改的是工程坐标系,只影响显示。真正的 QGIS投影变换需要通过“另存为”选择目标 CRS,或使用处理工具箱中的“重新投影图层”。

没有 EPSG 编码时怎么选择坐标系?

优先查看数据说明、项目技术文档、元数据或数据提供方说明。若没有任何说明,可根据坐标范围、所在地区、单位和已知控制点进行判断,但不建议直接用于正式成果。

为什么坐标转换后面积变化很大?

可能是原来在经纬度坐标系下计算面积,单位是度,不适合直接作为平方米使用。建议先转换到适合研究区的投影坐标系,再计算面积。

GeoJSON 转换坐标系要注意什么?

很多 WebGIS 场景默认使用 WGS 84 经纬度坐标或 Web Mercator 显示。导出 GeoJSON 前要确认前端地图框架、服务接口和数据约定使用哪种 CRS,避免加载后位置错乱。

结论:正确顺序比反复尝试更重要

QGIS坐标转换并不难,难点在于先判断问题类型。记住一个基本顺序:确认原始坐标系,检查工程显示,再另存为目标坐标系,最后用参考数据验证结果

如果你只是想让图层看起来叠在一起,设置工程坐标系可能就够了;如果你要提交成果、入库分析或计算面积距离,就必须执行真正的投影变换。按这个流程操作,绝大多数 QGIS坐标转换出错问题都能在几分钟内定位并修正。