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

国内地图坐标偏移到底差多少米

先看结论

用 GPS 采的点标到高德或百度地图上,整体偏出去几百米,而且不同城市偏的还不一样多。

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

现象

同一批点位数据,在 GPS 设备里读出来是一个位置,标到国内地图上就变成另一个位置。 偏移方向大体一致(东北方向居多),距离从两百多米到六百多米不等。 数据量越大,整体偏移越明显;单看一个点,容易被误认为是录入误差。

成因

国内互联网地图使用 GCJ-02 坐标系(俗称火星坐标),是在 WGS84 基础上做过非线性加密的产物。 GPS、北斗设备输出的原始坐标是 WGS84,两者不能直接混用。 百度地图在此基础上又叠了一层偏移,形成 BD-09。

坐标系使用方与 WGS84 的关系
WGS84GPS、北斗、国际标准(EPSG:4326)基准本身
GCJ-02高德、腾讯、天地图非线性加密,偏移数百米
BD-09百度地图在 GCJ-02 上再偏移一次
CGCS2000国家测绘成果(EPSG:4490)与 WGS84 差厘米级,工程上常等同

偏移量实测

下表由页面内算法逐点计算,按椭球面大圆距离,单位米:

城市WGS84GCJ-02偏移
乌鲁木齐87.616848, 43.82559287.619698, 43.826797265.3
拉萨91.140856, 29.64555491.142385, 29.642818338.6
成都104.066541, 30.572269104.069046, 30.569815363.7
西安108.940174, 34.341568108.944831, 34.340013461.7
上海121.473701, 31.230416121.478224, 31.228474481.8
哈尔滨126.642464, 45.756967126.648434, 45.758918512.0
北京116.397428, 39.909230116.403672, 39.910634555.6
深圳114.057868, 22.543099114.062982, 22.540382606.6
广州113.264385, 23.129112113.276136, 23.132723621.7

偏移量不是常数。它由一组以经纬度为自变量的三角函数算出,所以大小和方向都随位置连续变化。 网上流传的「固定加 0.0065」只适用于 BD-09 那一步,用在 GCJ-02 上无效。

解决

在数据进入地图之前做一次转换。下面的工具可以直接改坐标,函数也可以复制到项目里复用。 注意 WGS84 到 GCJ-02 有正算公式,反向没有解析解,必须迭代逼近。

源码与运行效果
运行效果

排查顺序

  1. 确认数据源坐标系。设备直采、政府开放数据多为 WGS84;从高德接口拿到的多是 GCJ-02。
  2. 确认底图坐标系。天地图是 CGCS2000(与 WGS84 近似),高德腾讯是 GCJ-02,百度是 BD-09。
  3. 两边一致就不用转;不一致必须转,且只转一次,转两次会反向偏出去。
  4. 转换后不要再用肉眼挑个别点做「微调」,那是把系统性误差变成随机误差。

相关

引用本文

经纬志(2026)。《国内地图坐标偏移到底差多少米》。https://www.jingweizhi.com/cookbook/coordinate-offset.html(访问日期 2026-11-03)。