经纬志
首页 / 实战手册 / 安全与合规

成果坐标系没转换,验收被退回

先看结论

数据看着没错,点位也落在正确的位置,质检报告却写着“坐标系与要求不符,平面位置超限”。

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

现象

成果提交后收到退回意见,原文大致如下:

成果坐标系应为 2000 国家大地坐标系(EPSG:4490),
实测数据坐标系为 WGS 84(EPSG:4326),未附转换参数与检核记录。
平面位置中误差 1.42 m,超过 0.05 m 限差,判定不合格。

把两份数据叠在一起看,偏差不大,肉眼几乎分辨不出,所以前期一直没被发现。

原因

现场采集设备输出 WGS84 经纬度,成果要求 CGCS2000 平面坐标。 处理环节直接做了 Web Mercator 投影再反算,跳过了基准转换:

  • Web Mercator(EPSG:3857)用球面公式近似椭球,反算回地理坐标会带来米级误差。
  • WGS84 与 CGCS2000 的参考椭球与历元不同,未做七参数或四参数转换,残差在分米级。
  • 转换参数没有记录,质检无法复现,直接判定不合规。

排查过程

  1. 读数据文件的 .prj
  2. 在 GIS 软件里查看图层坐标系定义,确认是地理坐标还是投影坐标。
  3. 取三个已知控制点,比较成果坐标与已知值,算出残差。
# 用 ogrinfo 查看数据坐标系
ogrinfo -al -so survey.gpkg
# Geometry: Point
# SRS: EPSG:4326 - WGS 84

ogrinfo -al -so result.shp
# SRS: EPSG:3857 - WGS 84 / Pseudo-Mercator

解决方案

统一在目标坐标系下作业。用 proj4 明确定义两套坐标系,不要依赖“看起来差不多”:

import proj4 from 'proj4';
import { writeFileSync } from 'node:fs';

proj4.defs('EPSG:4490',
  '+proj=longlat +ellps=GRS80 +no_defs +type=crs');

var toCgcs2000 = proj4('EPSG:4326', 'EPSG:4490');

var points = [
  [116.3912, 39.9071],
  [116.3955, 39.9098]
];

var converted = points.map(function (p) {
  return toCgcs2000.forward(p);
});

writeFileSync('cgcs2000.json', JSON.stringify(converted, null, 2));

需要平面坐标时,使用高斯-克吕格投影并带上正确的带号与中央经线, 不要用 Web Mercator 代替:

// 3 度带,中央经线 117°
proj4.defs('EPSG:4547',
  '+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ' +
  '+ellps=GRS80 +units=m +no_defs +type=crs');

var planar = proj4('EPSG:4490', 'EPSG:4547').forward([116.3912, 39.9071]);
console.log(planar);   // [ 465xxx.xx, 4418xxx.xx ]

有控制点时,用四参数或七参数拟合,并把参数与残差写进成果说明:

{
  "sourceCrs": "EPSG:4326",
  "targetCrs": "EPSG:4490",
  "method": "四参数",
  "params": {
    "dx": 12.431,
    "dy": -8.207,
    "rotation": 0.000214,
    "scale": 1.0000032
  },
  "checkPoints": 6,
  "maxResidualM": 0.031,
  "operator": "survey-team",
  "date": "2026-10-29"
}

验证

抽查三个控制点,转换后残差小于 0.05 m。 成果图层坐标系显示为 EPSG:4490,不再出现 4326 或 3857。 与既有合规数据叠加,边界重合,没有稳定方向的整体偏移。 转换参数文件随成果一并提交,质检方可复算。

不要靠肉眼判断:米级偏差在城市尺度上几乎看不出来, 但一定会在验收时暴露。提交前用控制点算残差,是最直接的自检手段。

引用本文

经纬志(2026)。《成果坐标系没转换,验收被退回》。https://www.jingweizhi.com/cookbook/compliant-coord-violation.html(访问日期 2026-11-03)。