每次在QGIS交流群里看到有人问“为什么我的shp和高德底图对不上”,我的第一反应通常不是让他去检查数据,而是让他把当前图层的CRS截图发出来。十次里有八次,问题不是数据坏了,而是坐标系和投影没有说清楚。这篇内容不是纯粹的理论投影课,而是想把QGIS里最常碰到的高斯-克吕格、UTM、Web墨卡托这三类投影讲透:它们各自解决什么问题、在QGIS里怎么选、怎么设、最容易在哪里翻车。
如果你是要做国土、测绘、遥感、城市规划这类方向,高斯-克吕格几乎躲不掉;如果你经常下载全球范围的数据或者跟GPS、在线地图打交道,UTM和Web墨卡托就是你每天都要面对的东西。哪怕你只是刚装好QGIS,还没搞懂投影平面是什么,这篇文章也能帮你在半小时内建立一套足够用的坐标系判断逻辑。后面提到的操作我都按QGIS 3.x的界面来写,旧版本菜单位置可能有差异,但思路完全一致。
1. 每次“图层对不上”,八成是没分清经纬度和投影坐标
1.1 经纬度坐标:给地球写“门牌号”
先说最基础的一件事:你把GPS拿到户外,得到的通常是类似“39.9087°N, 116.3975°E”这样的经纬度,这一组数描述的是地球椭球面上的位置。它本质上是三维球面上的坐标,不是一张平面图纸上的坐标。平时说的WGS 84、CGCS2000、北京54、西安80,虽然经常被笼统叫成“坐标系”,但严格来说它们分两层:一层是椭球体和基准面,决定经纬度从哪里算起;另一层是基于这个椭球做出来的投影,决定平面坐标怎么形成。
在QGIS里,WGS 84的常用EPSG编号是4326,CGCS2000的经纬度坐标系是4490。两者在实际民用尺度的差别很小,很多情况下可以互相套用,但不要因此就把它们当成同一个东西。对于1:1万甚至更大比例尺的测绘成果,CGCS2000和WGS 84之间那几十厘米到一两米的差异,仍然需要通过转换参数处理。
经纬度坐标最大的优点是全球统一,不需要知道地方信息就能定位;最大的缺点是它没法直接用来量距离和面积。你在4326下测量两点距离,得到的结果通常是一个带小数的度,而不是米。想把度换成米,就必须引入投影。
1.2 投影坐标:把橘子皮切开再摊平
地球是球面,地图是平面。把一个球面展开成一张完整矩形,必然要撕裂或者拉伸,这就是地图投影要处理的根本矛盾。你可以把地球想象成一个橘子,把
