⏱ 4 步速查(跟着做即可,详细步骤见下文):
- 设置项目坐标系:菜单「项目」→「属性」→「CRS」,在过滤器中输入 EPSG 代码(如
EPSG:4490)选中后确定 - 坐标显示换成经纬度:把项目 CRS 设为
EPSG:4326(WGS 84),右下角状态栏立即显示经纬度 - 改显示格式为度分秒:「项目」→「属性」→「常规」→「坐标与方位角显示」,坐标格式选「度、分、秒」
- 图层显示「CRS 未知」:选中图层按
Ctrl+Shift+C(或「图层」→「设置图层的坐标系」)指派正确的 CRS——注意这是"重新解释坐标",不会改写源数据
坐标系(CRS)是 GIS 里最容易把新手卡住的一环:加载的图层跑到大海里、右下角坐标显示一长串不是经纬度的数字、加载数据时突然弹出对话框让你"选择坐标系"……这些问题的根源都一样——数据本身记录的只是坐标数字,数字要配上坐标系才有地理意义。本教程按"先分清概念 → 项目级设置 → 图层级处理 → 报错排查"的顺序,把 QGIS 坐标系转换相关的操作一次讲清。
1. 三分钟搞懂:坐标系是什么,QGIS 怎么处理它
坐标系(Coordinate Reference System,CRS)是一套把坐标数字对应到地球表面位置的规则。QGIS 内置支持约 7000 种标准坐标系,通过 EPSG 代码 来引用,国内常用这两个:
| EPSG 代码 | 名称 | 说明 |
|---|---|---|
| EPSG:4326 | WGS 84 | 经纬度坐标(地理坐标系),GPS 数据、大部分网络地图的默认坐标系 |
| EPSG:4490 | CGCS2000 | 中国国家大地坐标系,国内官方数据、天地图的常用坐标系 |
QGIS 处理坐标系的底层逻辑有两条,理解了它们,后面所有操作都不再神秘:
- 动态投影默认开启:QGIS 会把项目中所有图层自动转换到"项目坐标系"再显示——所以不同坐标系的图层能叠加到一起,且原始数据文件不会被改动。
- 图层必须有正确的 CRS 标注:动态投影的前提是 QGIS 知道每个图层"本来"是什么坐标系。这个信息从数据文件读取(如 Shapefile 的
.prj文件);读不到时,QGIS 就认为图层"CRS 未知",需要你手动指派。
2. 项目坐标系设置:所有图层显示的"基准"
项目坐标系决定地图画布怎么显示,新项目的默认值是 EPSG:4326(WGS 84)。设置入口有两处:
- 菜单「项目」→「属性」→「CRS」选项卡,在过滤框输入 EPSG 代码或名称,选中后点「确定」
- 更快的方式:在图层面板右键某个图层 →「从图层设置项目 CRS(Set project CRS from Layer)」,直接把项目坐标系设成该图层的坐标系
设置完成后,QGIS 窗口右下角状态栏会显示当前项目 CRS 代码,所有图层自动转换到该坐标系显示。想改回默认,可在「设置」→「选项」→「CRS」中修改新项目的默认坐标系。
3. 坐标显示怎么换为经纬度
这是坐标系转换最高频的需求。右下角状态栏显示的是项目坐标系下的坐标,所以换经纬度有两条路,按需要选:
3.1 方法一:把项目 CRS 设为 EPSG:4326(推荐)
- 「项目」→「属性」→「CRS」,过滤输入
4326 - 选中「WGS 84 (EPSG:4326)」→「确定」
- 状态栏坐标即变为经度、纬度(十进制度)
这个方法适合"我就要经纬度数值"的场景:取点坐标、核对数据位置、复制坐标给别人。
3.2 方法二:只改显示格式为"度分秒",不改项目坐标系
如果项目坐标系要保持在 CGCS2000 等投影系(量算面积距离才准),但想用度分秒样式看坐标:
- 「项目」→「属性」→「常规」→「坐标与方位角显示(Coordinate and Bearing Display)」
- 「坐标显示方式」选「地图地理坐标(度)」,坐标格式选「度、分、秒(Degrees, Minutes, Seconds)」
- 可按需勾选显示方位后缀(E/N/S/W)、坐标顺序(经度在前还是纬度在前)
4. 图层坐标系:查看、指派、重投影是三件事
图层级的 CRS 处理有三种操作,很多人混为一谈,先把区别说清:
| 操作 | 做什么 | 源数据是否被修改 | 什么时候用 |
|---|---|---|---|
| 查看 | 图层属性 →「信息」/「源」选项卡,看"分配的坐标系" | 否 | 判断数据当前被 QGIS 解释成什么坐标系 |
| 指派(Assign) | 告诉 QGIS"这份数据本来就是某个坐标系",只改解释方式 | 否(只改项目内解释) | 数据有坐标但缺 CRS 标注(如 .prj 丢失) |
| 重投影(Reproject) | 把坐标数字真正换算成另一套坐标系的值,输出新数据 | 否(生成新文件) | 要把数据永久转换到目标坐标系再导出 |
4.1 指派图层坐标系(处理「CRS 未知」的关键操作)
- 在图层面板选中一个或多个图层(按住
Ctrl可多选) - 按快捷键
Ctrl+Shift+C,或右键 →「设置图层的坐标系(Set CRS of Layer(s))」,或菜单「图层」→「设置图层的坐标系」 - 在坐标系选择器中搜索并选中正确的 CRS,点「确定」
- 回到图层属性「源」选项卡可确认指派结果
4.2 重投影导出:把数据真正转换到目标坐标系
两种等价做法,都是生成一份坐标值已换算的新文件:
- 另存为:右键图层 →「导出」→「要素另存为…」,在「坐标系(CRS)」处选择目标坐标系(如 CGCS2000 或 UTM 投影带),指定输出路径后保存
- 重投影图层算法:处理工具箱中搜索「重投影图层(Reproject layer)」,设置目标 CRS 运行,栅格数据对应的是「重投影(Warp)」等工具
与指派的区别一目了然:重投影输出的新文件里,坐标数字已经彻底变成了目标坐标系的值,之后在任何软件里打开都直接是正确的位置。
5. 报错实录:「CRS 未知」与坐标异常的 4 个真实场景
以下四个场景按"出现频率 × 排查难度"整理,均可在几分钟内定位。每个场景先写你看到的现象,再给修复步骤。
5.1 场景一:加载图层时弹出「选择坐标系」对话框
现象:添加一个 SHP 或 CSV 图层时,QGIS 弹出坐标系选择器,要求你为该图层选择 CRS——这是数据文件里没有坐标标注(比如 Shapefile 缺 .prj 文件)时 QGIS 的默认行为。
修复:
- 在弹窗中搜索并选中该数据真实的 CRS(不确定时先查数据来源的说明文档,选错了图层会被放到地球上的错误位置)
- 如果经常批量加载数据、不想每次弹窗:把默认行为改掉——「设置」→「选项」→「CRS」,在「图层的 CRS」组里选择「提示选择 CRS」以外的选项,例如「使用项目 CRS」或「保留为未知 CRS」
- 选了「保留为未知 CRS」的图层会在图层面板名字旁显示"未知 CRS"标识,之后随时可以选中图层按
Ctrl+Shift+C补指派
5.2 场景二:图层位置错乱,与底图叠不上
现象:加载图层后地图缩放不到数据位置,或图层"飘"到了别的经纬度——最常见的原因是图层的 CRS 被错误标注(或缺省)。
排查步骤:
- 先看图层的"分配的坐标系"(图层属性 →「源」),再对比数据来源说明,确认两者是否一致
- 标注错了 → 重新指派正确 CRS(
Ctrl+Shift+C),图层位置立即回到正确处 - 标注没错但仍对不上 → 检查是否是国内特有的偏移坐标系(GCJ-02 火星坐标):高德等互联网地图的坐标加了非线性偏移,直接当 WGS 84 用必然错位,需要先做纠偏转换
- 确认是偏移问题后,参考 QGIS 加载在线地图教程 中的偏移说明处理底图与数据的关系
5.3 场景三:项目本身没有坐标系(No CRS)
现象:状态栏坐标显示异常、量算结果的单位显示为"未知单位",图层全部按原始数字坐标绘制。原因是项目属性中被勾选了「无坐标系(No CRS)」。
修复:「项目」→「属性」→「CRS」,取消「无坐标系」勾选,改为正常的坐标系即可。这个模式只在特殊场景(猜数据坐标系、非地球用途)使用,日常项目不要开。
5.4 场景四:转换时提示有更精确的基准变换可用
现象:把图层转换到某个项目坐标系时,QGIS 弹出信息提示:存在更精确的基准变换,但当前系统不可用。
解释与修复:部分坐标系之间有多种变换方法,QGIS 默认用最精确的一种;缺变换支持文件时才会提示。按提示下载对应变换支持包,解压到 QGIS 用户配置目录的 proj 文件夹即可;也可以在「设置」→「选项」→「转换」中设置多个可用变换时是否每次询问你选择。