坐标系那点事:WGS84、GCJ02、BD09 为什么对不上

同一辆车,设备上报的经纬度直接标到国内地图上会偏,因为地图用的不是设备那套坐标系。排查顺序是:先确认设备输出什么,再确认平台怎么转,最后才怀疑定位不准。

同一张地图,两套坐标WGS84GCJ02同一个点,两套坐标能差出几十到几百米对接平台前先确认:对方要 WGS84 还是国内偏移后的坐标否则轨迹”漂移”是坐标问题,不是设备问题
同一地点在 WGS84 与国内偏移坐标下会差几十到几百米,对接前必须约定。

车明明停在路边,平台上却漂到隔壁街区,先别急着怪定位不准,多半是两拨人拿着不同的地图底本。早些年卫星定位给出的是一套全球统一的坐标框架 WGS84(世界大地坐标系,World Geodetic System);后来各地出于管理需要,在这套坐标上做了各自的偏移处理,于是同一组经纬度放进不同底图就会落到不同地方,GCJ02、BD09 都是这么来的。地理老师把两版透明地图叠在灯箱上让学生看,同一个点错开一小截,道理一眼就明白:不是点动了,是纸换了。工程上真正麻烦的是混用:设备按一套上报,平台按另一套解析,地图再用第三套渲染,三层各错一点,偏差就显出来了。排查顺序其实固定,先确认设备原始上报值,再看平台有没有转换,最后看地图用的哪一套。

原因不是定位不准,而是坐标系(coordinate reference system)不同:卫星定位原生输出通常基于 WGS84,国内面向公众的地图服务使用经过偏移处理的坐标系,部分地图服务还会在其上再做一次自己的偏移。偏移是规则性的,不是随机误差。

这对排查特别有用:如果轨迹整体朝一个方向平移、形状却和道路吻合,先查坐标系;如果形状本身乱跳,再查信号与安装。

一、三套坐标系怎么区分

名称 英文 / 全称 常见来源 与其他坐标系的关系 典型误用
WGS84 World Geodetic System 1984 GNSS 接收机原生输出 基准,未经国内地图偏移处理 直接标到国内公众地图上,看起来整体偏移
GCJ02 国内地图偏移坐标系(俗称“火星坐标”) 国内地图服务 在 WGS84 基础上按规则加偏 把加偏后的坐标当成设备原始输出回写平台
BD09 某地图服务自定义坐标系 特定地图服务 在 GCJ02 基础上再加一次偏移 与 GCJ02 混用,出现二次偏移

表里不写偏移距离的具体数值:偏移随位置变化,给一个固定米数本身就是错的。判断方法很简单,看轨迹形状:整体平移但道路吻合,是坐标系;点位散乱、跳变,是观测问题。

几个术语顺手对齐:大地基准(geodetic datum)指坐标系统所依据的椭球与基准定义;经纬度顺序(longitude / latitude order)指“经度在前还是纬度在前”,不同接口约定不同;坐标转换(coordinate transformation)指按规则在坐标系之间换算,转换应当只做一次。

二、平台对接时的排查顺序

按这个顺序走,能在半小时内把大多数“位置不对”定位到具体环节:

  1. 确认设备输出什么。查参数页或协议文档中“经纬度格式 / 坐标系”字段,拿到书面口径。TM820 技术参数可看参数原文;设备当前上报相关配置可在短信配置页核对。
  2. 确认平台入库时有没有转换。有些平台在接入层统一转换,有些要求设备侧直接给加偏后的坐标。若两处都转,就会二次偏移,这是最常见也最难查的一种,因为每一处单看都“没问题”。
  3. 确认前端地图用的是哪套。同一个平台,Web 端与移动端可能调用不同地图服务,坐标系要求不同。
  4. 核对字段顺序与单位。经纬度写反、度分与十进制度混用,会让点落到完全不同的地方;这类错误通常表现为“位置离谱但稳定”。
  5. 用一个已知点做端到端验证。把设备放在坐标已知的固定点,记录设备原始上报值、平台入库值、地图显示值三层数据,逐层比对,偏移出现在哪一层就查哪一层。

第 5 步最有效,也最常被跳过。三层数据记在一张表里,问题归属立刻清楚,不用在设备、平台、地图三方之间来回猜。

站内关于协议字段、上报格式的公开口径有限,具体字段定义与坐标系约定需向商务或平台方书面确认;资料下载可找到对应说明书,产品总览可核对型号与适用页面。不要从“别的平台是这样”推断本项目的约定。

三、三种“位置不对”,别混为一谈

现象 更像哪一类问题 建议先查
整条轨迹平行偏移,形状与道路吻合 坐标系 / 转换重复 上面第 1–3 步
点稳定但落在完全无关的地方 字段顺序、单位、度分格式 上面第 4 步
点位散乱、跳变、时有时无 观测条件、遮挡、补位切换 天线安装、上报策略、定位来源标识
车停着不动,轨迹缓慢绕圈 静止漂移或补位介入 静止判定规则、平台是否做漂移抑制

这张表的价值在于把“不准”这个含糊的报障词拆开。客服接到“定位不准”,先问一句“是整体偏还是乱跳”,就能把工单分到两条完全不同的处理链。

四、对接平台时按哪几步排查

如果你在做自建平台或第三方平台接入,头一件事是把坐标系约定写进接口文档,并明确“转换只在哪一层做一次”;这一条比选哪套坐标系更重要。如果你只是在现成平台上看车,遇到整体偏移先找平台管理员确认地图与入库设置,不要急着让安装师傅重新装设备。

如果你在做多端展示(Web + 小程序 + 第三方地图),选“设备统一输出原始坐标、平台入库时统一转换一次”的方案;如果你在做与甲方平台的对接,按对方接口文档的约定执行,并把约定书面留存,避免双方都默认对方会转。

拿一台已知停放位置的样机,先从平台导出一条未经转换的原始经纬度,贴到设备侧和地图侧各看一次落点。三处对不上就逐层问:设备上报哪一套、平台有没有做转换、地图底图用哪一套。把三方的书面答复记成一页对照表,附在接口联调记录里。以后换平台、换地图供应商,这张表能直接复用,不必重新猜一遍。