高斯 3 度带带号算成中央经线,图层偏了 275 公里
EPSG:4546 和 EPSG:4547 只差一个数字,位置差了近三个经度。
现象
一份陕西关中平原的 CGCS2000 成果数据,x 在 350000~650000,
y 在 3780000 附近。在 QGIS 里用 EPSG:4547 打开,
整片数据落到 112.5°E 附近,比实际位置向东偏 2 度多,约 275 公里。
换成 EPSG:4546 就恢复正常。
原因
CGCS2000 的 3 度带按中央经线编号,不是按带号顺序编号:
EPSG:4546 对应中央经线 108°E(第 36 带),
EPSG:4547 对应中央经线 111°E(第 37 带)。
两个码只差 1,中央经线却差 3 度。
计算关系是 带号 = 中央经线 / 3,反过来 中央经线 = 带号 × 3。
108.94°E 落在 108°E 与 111°E 之间,按就近原则取 108°E,即第 36 带。
如果把「带号 36」直接当成 108 再乘 3 得到 108 是对的,
但如果误按 6 度带的公式 中央经线 = 带号 × 6 - 3,36 带会算成 213°E,那就完全错了。
| 中央经线 | 3 度带带号 | EPSG | 适用经度范围 |
|---|---|---|---|
| 105°E | 35 | EPSG:4545 | 103.5 ~ 106.5 |
| 108°E | 36 | EPSG:4546 | 106.5 ~ 109.5 |
| 111°E | 37 | EPSG:4547 | 109.5 ~ 112.5 |
| 114°E | 38 | EPSG:4548 | 112.5 ~ 115.5 |
排查过程
- 看数据 x 值。高斯投影的假东是 500000,x 若在
500000±150000内,说明中央经线就在数据附近。 - 用 y 反推纬度,用 x 与 500000 的差值估算经差:
Δlon ≈ (x - 500000) / (111320·cos(lat))。 - 把估算的经度与图层声明的中央经线比较,差值超过 1.5 度就是带号错。
- 在 QGIS 的图层属性里看 CRS 的 WKT,确认
PARAMETER["central_meridian",...]的实际数值。
// 由 x 反推经度,判断声明是否合理
const x = 600000, lat = 34.34;
const dLon = (x - 500000) / (111320 * Math.cos(lat * Math.PI / 180));
console.log(108 + dLon); // ≈ 109.1,落在 108°E 带内
// 若图层声明 111°E,则该点应落在 112.1°E,与实际不符 -> 带号错
解决方案
按经度选带,不要按 EPSG 编号顺序猜。相邻带交界处(距中央经线超过 1.5 度) 应改用 6 度带或直接存经纬度。
// 3 度带:带号 = round(lon / 3),中央经线 = 带号 * 3
function zone3(lon) {
const z = Math.round(lon / 3);
return { zone: z, cm: z * 3 };
}
zone3(108.940174); // { zone: 36, cm: 108 }
// 显式定义,避免只写 EPSG 号时被别的库按 6 度带解释
proj4.defs('CGCS2000_3DEG_36',
'+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0' +
' +ellps=GRS80 +units=m +no_defs');
proj4('CGCS2000_3DEG_36', 'EPSG:4490', [600000, 3800000]);
// => [109.05, 34.32] 量级正确
验证
转换后经度应落在 108.94 附近(允许 ±0.02 度,因为 x 是取整后的示例值), 纬度在 34.34 附近。用同一份数据换 4547 再算一次,经度会变成 111.9 左右,差值约 2.9 度。
const a = proj4('CGCS2000_3DEG_36', 'EPSG:4490', [600000, 3800000]);
console.assert(Math.abs(a[0] - 109.05) < 0.05, '中央经线仍不对');
const b = proj4('EPSG:4547', 'EPSG:4490', [600000, 3800000]);
console.assert(Math.abs(b[0] - a[0] - 3) < 0.1, '两带之差应为 3 度');
适用版本
| 工具 | 版本 | 说明 |
|---|---|---|
| QGIS | 3.28 及以上 | 可在图层属性中直接看中央经线参数 |
| proj4js | 2.9 及以上 | 内置 4490,3 度带 EPSG 需确认是否收录 |
| ArcGIS Pro | 3.x | 「CGCS2000 3 Degree GK CM 108E」对应 4546 |
经纬志(2026)。《高斯 3 度带带号算成中央经线,图层偏了 275 公里》。https://www.jingweizhi.com/cookbook/gauss-kruger-band.html(访问日期 2026-11-03)。