经纬志
首页 / 实战手册 / 坐标与投影

高斯 3 度带带号算成中央经线,图层偏了 275 公里

先看结论

EPSG:4546 和 EPSG:4547 只差一个数字,位置差了近三个经度。

最后验证 2026-11-03 · 多技术栈 · 更新 2026-10-29 · 引用本文

现象

一份陕西关中平原的 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°E35EPSG:4545103.5 ~ 106.5
108°E36EPSG:4546106.5 ~ 109.5
111°E37EPSG:4547109.5 ~ 112.5
114°E38EPSG:4548112.5 ~ 115.5

排查过程

  1. 看数据 x 值。高斯投影的假东是 500000,x 若在 500000±150000 内,说明中央经线就在数据附近。
  2. 用 y 反推纬度,用 x 与 500000 的差值估算经差:Δlon ≈ (x - 500000) / (111320·cos(lat))。
  3. 把估算的经度与图层声明的中央经线比较,差值超过 1.5 度就是带号错。
  4. 在 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 度');

适用版本

工具版本说明
QGIS3.28 及以上可在图层属性中直接看中央经线参数
proj4js2.9 及以上内置 4490,3 度带 EPSG 需确认是否收录
ArcGIS Pro3.x「CGCS2000 3 Degree GK CM 108E」对应 4546
引用本文

经纬志(2026)。《高斯 3 度带带号算成中央经线,图层偏了 275 公里》。https://www.jingweizhi.com/cookbook/gauss-kruger-band.html(访问日期 2026-11-03)。