QGIS自定义投影怎么做?参数具体怎么填?
很多同学在做地方坐标、工程坐标或历史数据配准时,会遇到“QGIS自定义投影怎么做?参数具体怎么填?”这个问题:明明有一串投影参数,却不知道应该填到 QGIS 的哪个位置;或者导入后图层能显示,但位置偏了几百米甚至几公里。本文按实际操作流程讲清楚 QGIS自定义投影 的创建方法、参数含义、填写顺序和检查办法。

引言:什么时候需要在 QGIS 自定义投影
QGIS 默认内置了大量坐标参考系,也就是 CRS。一般情况下,WGS 84、CGCS2000、Web Mercator、高斯-克吕格分带等常见坐标系都可以直接搜索使用,不需要自己写参数。
真正需要 QGIS自定义投影 的场景通常有以下几类:
- 甲方只给了一组工程坐标参数,没有标准 EPSG 编码。
- 数据来自地方独立坐标系、矿区坐标系、城市坐标系或施工坐标系。
- 已有旧版 ArcGIS 的 PRJ 文件,但 QGIS 中搜索不到完全一致的坐标系。
- 同一个数据在 QGIS 里加载后偏移,需要检查中央经线、椭球、假东、假北等参数。
- 需要把一套常用的投影参数保存下来,后续项目反复使用。
注意,自定义投影不是“随便改一个坐标系名称”。它本质上是在 QGIS 中新建一个坐标参考系定义,告诉软件如何理解图层坐标值,以及如何和其他坐标系进行转换。
背景:QGIS 自定义投影参数通常从哪里来
在填写 QGIS自定义投影 参数之前,最重要的不是打开软件,而是确认参数来源是否可靠。很多投影错误并不是 QGIS 操作问题,而是源参数本身不完整。
常见的参数来源包括:
- PRJ 文件:Shapefile 旁边的 .prj 文件,里面通常保存 WKT 格式的坐标系定义。
- 项目技术文档:测绘成果说明、坐标系统说明、控制点成果表。
- ArcGIS 坐标系定义:ArcMap 或 ArcGIS Pro 中导出的坐标系文本。
- PROJ 字符串:例如包含
+proj=tmerc、+lat_0、+lon_0的参数。 - EPSG 相近坐标系:已知使用某个标准投影,但中央经线或带号需要确认。
如果你只有“这是 2000 坐标系”这样的描述,通常还不够。CGCS2000 只是大地基准和椭球信息,具体到投影坐标,还需要知道是几度带、中央经线是多少、是否有带号、假东坐标如何设置。
原理:先分清地理坐标系、投影坐标系和自定义 CRS
理解 QGIS自定义投影 的关键,是先分清三个概念。
1. 地理坐标系
地理坐标系使用经纬度表达位置,单位通常是度。例如 WGS 84、CGCS2000 地理坐标系。它关心的是椭球、基准面和经纬度坐标。
2. 投影坐标系
投影坐标系把地球表面的经纬度转换到平面坐标,单位通常是米。例如高斯-克吕格投影、横轴墨卡托投影、UTM 投影等。工程测量、面积计算、距离分析通常更适合用投影坐标系。
3. QGIS 自定义 CRS
QGIS 中的自定义 CRS,是你手动保存的一条坐标参考系定义。它可以使用 WKT 格式,也可以使用 PROJ 字符串。QGIS 会根据这条定义解释坐标、进行重投影和坐标转换。
所以,“QGIS自定义投影怎么做”的核心不是点哪个按钮,而是把正确的 CRS 定义以 QGIS 能识别的格式保存下来。
步骤:QGIS 自定义投影怎么做
步骤 1:先确认图层当前坐标值是什么单位
在 QGIS 中打开图层后,先观察图层坐标值。可以把鼠标移动到地图上,看窗口底部状态栏的坐标。
- 如果坐标类似
116.35, 39.90,通常是经纬度坐标,单位是度。 - 如果坐标类似
39500000, 4420000,可能是带号形式的高斯-克吕格坐标。 - 如果坐标类似
500000, 4420000,可能是去带号的投影坐标。 - 如果坐标类似
12000, 8500,可能是地方独立坐标或工程坐标。
这一步用于判断你要自定义的是地理坐标系、投影坐标系,还是需要额外的坐标转换参数。很多时候,QGIS自定义投影 只能解决“投影定义”问题,不能自动解决地方坐标到国家坐标的七参数转换问题。
步骤 2:打开 QGIS 自定义坐标参考系窗口
- 打开 QGIS。
- 点击顶部菜单中的 设置。
- 选择 自定义投影 或 自定义坐标参考系。不同版本 QGIS 的中文翻译可能略有差异。
- 点击新增按钮,创建一个新的自定义 CRS。
建议名称写得具体一点,不要只写“自定义坐标系”。例如可以写成:
CGCS2000_GK_CM117_3degree_customLocal_Project_2024_TMercXX市独立坐标系_横轴墨卡托
名称不会改变坐标系本身,但清晰的命名能减少后续误用。
步骤 3:优先使用 WKT 参数填写
如果你有完整 PRJ 文件,最稳妥的方法是复制其中的 WKT 坐标系定义,粘贴到 QGIS 自定义 CRS 的参数框中。
一个投影坐标系 WKT 通常会包含以下信息:
- PROJCS:投影坐标系名称。
- GEOGCS:底层地理坐标系。
- DATUM:大地基准。
- SPHEROID:椭球名称、长半轴、扁率倒数。
- PROJECTION:投影方法。
- PARAMETER:中央经线、原点纬线、比例因子、假东、假北等参数。
- UNIT:坐标单位,通常是 Meter。
示意结构如下:
PROJCS["Custom_CGCS2000_GK",
GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
DATUM["D_China_2000",
SPHEROID["CGCS2000",6378137,298.257222101]],
PRIMEM["Greenwich",0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["False_Easting",500000],
PARAMETER["False_Northing",0],
PARAMETER["Central_Meridian",117],
PARAMETER["Scale_Factor",1],
PARAMETER["Latitude_Of_Origin",0],
UNIT["Meter",1]]
这类 WKT 适合从 ArcGIS、GDAL、测绘软件或已有 PRJ 文件迁移到 QGIS。粘贴后可以点击验证或应用,如果 QGIS 能识别,通常会显示为有效 CRS。
步骤 4:没有 WKT 时,用 PROJ 字符串填写
如果资料中给的是投影参数,可以用 PROJ 字符串。以常见的横轴墨卡托投影为例:
+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs
常用参数含义如下:
| 参数 | 含义 | 常见填写方式 |
|---|---|---|
+proj=tmerc |
投影方法,tmerc 表示横轴墨卡托 | 高斯-克吕格、横轴墨卡托常用 |
+lat_0=0 |
原点纬线 | 我国常见高斯投影一般为 0 |
+lon_0=117 |
中央经线 | 根据分带或项目参数填写 |
+k=1 |
比例因子 | 高斯-克吕格通常为 1,UTM 通常为 0.9996 |
+x_0=500000 |
假东坐标 | 常见为 500000,也可能包含带号 |
+y_0=0 |
假北坐标 | 北半球常见为 0 |
+ellps=GRS80 |
椭球 | CGCS2000 常对应 GRS80 |
+units=m |
单位 | 投影坐标一般为米 |
这里最容易填错的是 +lon_0 和 +x_0。如果中央经线错了,图层可能整体向东西方向偏移;如果假东坐标是否带带号搞错,坐标值会出现数量级不一致。
步骤 5:保存自定义 CRS 并赋给图层
自定义 CRS 保存后,需要明确区分两个操作:
- 设置图层 CRS:告诉 QGIS 这个图层原本是什么坐标系。
- 另存为重投影:把数据坐标值真正转换到另一个坐标系。
如果图层只是“没有定义坐标系”,坐标值本身是对的,应当右键图层,进入图层属性,设置正确的源 CRS。这个过程不改变几何坐标值。
如果你要把数据从自定义投影转换为 WGS 84、CGCS2000 经纬度或 Web Mercator,需要右键图层,选择导出或另存为,在目标 CRS 中选择要转换到的坐标系。这个过程会改变输出数据的坐标值。
步骤 6:用已知数据验证位置是否正确
QGIS自定义投影 设置完成后,不要只看图层是否显示。正确的验证方式是叠加可靠参考数据。
建议按以下顺序检查:
- 叠加同区域的标准行政区、道路、水系或影像底图。
- 检查图层是否整体落在正确城市或项目区。
- 检查几个明显点位,如道路交叉口、河流拐点、建筑边界。
- 如果有控制点,比较控制点坐标转换后的误差。
- 检查面积、距离是否符合实际量级。
如果整体偏移比较稳定,可能是基准转换参数缺失;如果偏移方向和距离很大,优先检查中央经线、分带、假东坐标和单位。
常见坑:QGIS 自定义投影参数具体怎么填才不容易错
坑 1:把“定义投影”和“坐标转换”混为一谈
定义投影只是告诉 QGIS 如何解释已有坐标。坐标转换是把坐标从一个 CRS 计算到另一个 CRS。很多新手看到图层不在正确位置,就反复修改图层 CRS,这往往会越改越乱。
判断方法很简单:如果原始坐标值本身没有改变,你只是设置了图层 CRS;如果导出新文件后坐标值改变了,才是完成了重投影或坐标转换。
坑 2:中央经线填错
高斯-克吕格和横轴墨卡托投影对中央经线非常敏感。比如同样是 CGCS2000,高斯 3 度带,不同带号对应不同中央经线。中央经线错一带,数据可能偏移上百公里。
如果资料中给的是带号,需要先换算中央经线。常见 3 度带中央经线可以按带号与分带规则推算,但实际项目应以测绘成果说明为准。
坑 3:假东坐标是否包含带号没确认
国内一些高斯-克吕格坐标会在横坐标前加带号。例如同一位置的横坐标可能表现为 500000 附近,也可能表现为 39500000 这种带号加假东的形式。
在 PROJ 字符串中,+x_0 通常填写投影参数的假东坐标,不一定等于数据横坐标前面的完整数值。是否需要保留带号,要看数据生产单位的约定。
坑 4:CGCS2000、WGS84、北京54、西安80混用
不同大地基准之间存在差异。仅仅把椭球从 WGS84 改成 CGCS2000,不一定能解决地方数据的偏移。北京54、西安80、CGCS2000 之间如果需要高精度转换,通常还涉及七参数、四参数或格网改正。
如果项目要求厘米级或分米级精度,应向数据提供方索取正式转换参数,不要只靠自定义投影猜测。
坑 5:把经纬度图层当作投影坐标处理
如果坐标值是 100 多和 30 多,很可能是经纬度。此时不应该套用 +proj=tmerc 这样的投影参数。否则图层会被错误解释。
正确做法是先给图层定义对应的地理坐标系,例如 WGS 84 或 CGCS2000,再根据需要重投影到平面坐标系。
方法比较:WKT、PROJ 字符串和直接选 EPSG 哪个更合适
| 方法 | 适用场景 | 优点 | 注意事项 |
|---|---|---|---|
| 直接选择 EPSG | 标准坐标系,如 WGS 84、Web Mercator、常见 UTM | 最简单,出错少 | 要确认 EPSG 与数据真实坐标系一致 |
| 导入或粘贴 WKT | 已有 PRJ 文件、ArcGIS 坐标系定义 | 信息完整,适合迁移 | 仍需检查基准和投影参数是否符合项目 |
| 填写 PROJ 字符串 | 只有中央经线、假东、椭球等参数 | 简洁,便于手动调整 | 参数名和单位必须准确 |
| 仅修改图层 CRS | 数据坐标值正确,但缺少坐标系定义 | 不会改变原始几何坐标值 | 不能替代真正的重投影 |
| 另存为重投影 | 需要输出到另一个 CRS | 生成新的坐标值和新文件 | 源 CRS 必须先定义正确 |
实际工作中,优先级建议是:能用标准 EPSG 就不要自定义;有完整 PRJ 就用 WKT;只有参数表时再写 PROJ 字符串。这样最符合 QGIS自定义投影 的稳定使用原则。
检查清单:提交成果前逐项核对
- 是否确认了数据原始坐标值的单位,是度还是米?
- 是否确认了底层地理坐标系,例如 WGS84、CGCS2000、北京54或西安80?
- 是否确认了投影方法,例如 Transverse Mercator、高斯-克吕格或 UTM?
- 中央经线是否与分带或项目说明一致?
- 比例因子是否正确,高斯常见为 1,UTM 常见为 0.9996?
- 假东、假北是否正确,是否存在带号前缀?
- 单位是否为米,是否存在英尺或其他单位?
- 是否区分了“设置图层 CRS”和“另存为重投影”?
- 是否叠加可靠底图、行政区或控制点进行验证?
- 如果存在稳定偏移,是否检查过基准转换参数是否缺失?
FAQ:QGIS 自定义投影常见问题
Q1:QGIS 自定义投影填完后图层还是偏,怎么办?
先不要继续乱改参数。建议按顺序检查:源数据 CRS 是否定义正确、中央经线是否正确、假东坐标是否带带号、椭球和基准是否匹配、是否缺少七参数或地方坐标转换参数。如果图层整体稳定偏移,很可能不是投影参数本身,而是基准转换问题。
Q2:只有一个 PRJ 文件,能不能直接用于 QGIS?
可以。用文本编辑器打开 PRJ 文件,复制其中的 WKT 内容,粘贴到 QGIS 自定义坐标参考系中。保存后再把这个自定义 CRS 指定给对应图层。完成后一定要叠加参考数据验证。
Q3:QGIS 自定义投影参数具体怎么填,WKT 和 PROJ 哪个更推荐?
如果有完整 WKT,优先用 WKT,因为它包含的信息更完整。如果只有中央经线、椭球、假东、假北等参数,可以写 PROJ 字符串。对于标准坐标系,最推荐直接搜索 EPSG,不必自定义。
Q4:自定义 CRS 后,原始数据坐标值会变吗?
不会。给图层指定自定义 CRS 只是定义坐标参考系,不会改变几何坐标值。只有执行导出、另存为并选择目标 CRS 时,输出文件的坐标值才会发生转换。
Q5:为什么同样是 CGCS2000,别人数据能对上,我的数据对不上?
CGCS2000 只是一个坐标基准体系,实际数据还可能涉及不同投影分带、不同中央经线、是否带带号、地方坐标转换参数等。只知道“CGCS2000”通常不足以完整确定投影坐标系。
Q6:地方独立坐标系可以只靠 QGIS 自定义投影解决吗?
不一定。如果地方独立坐标系只是标准投影参数不同,可以通过 QGIS自定义投影 处理。如果它还包含平移、旋转、尺度改正等工程坐标转换关系,则需要四参数、七参数、仿射变换或专门的坐标转换流程。
结论:先确认参数,再自定义投影,最后验证结果
QGIS自定义投影 的正确流程可以概括为三句话:先确认原始数据坐标系和参数来源;再用 WKT 或 PROJ 字符串在 QGIS 中创建自定义 CRS;最后通过底图、控制点或已知成果验证位置。
如果只是图层没有坐标系定义,就给它指定正确 CRS;如果要转换到另一个坐标系,就在源 CRS 正确的前提下另存为重投影。遇到偏移时,不要只盯着 QGIS 操作界面,更要检查中央经线、假东坐标、椭球基准和地方转换参数。这样处理,才能真正解决“QGIS自定义投影怎么做?参数具体怎么填?”这个问题。