经度
116.413642
纬度
39.905603
与输入点的球面距离: 555 m
公开近似,不是路况、导航或测绘结果。复制顺序是纬度、经度。
工具介绍
手机 GPS 芯片多半给出 WGS84。高德和腾讯画的是 GCJ-02,也就是常说的火星坐标。百度画的是 BD-09,它在 GCJ-02 上又偏一次。把 WGS84 的点直接标到 GCJ-02 的地图上,常常会偏出几百米,落到马路另一侧。这一页用开源库广泛采用的那组多项式做 GCJ-02 偏移,再用常见的 BD-09 极坐标平移处理一对数字。它不拉取路况,不把点吸到道路上,也不保证图钉落在正确的车道。
WGS84 转 GCJ-02 以东经 105 度、北纬 35 度为原点,用正弦多项式估算偏移,再按这套近似所用的克拉索夫斯基椭球换算成角度:长半轴 6378245 米,第一偏心率平方 0.00669342162296594323。经度不在 72.004 到 137.8347、或纬度不在 0.8293 到 55.8271 时,这一步直接返回原值。GCJ-02 转回 WGS84 不是解方程,而是把正向函数做一次反射:结果 = 输入的两倍减去正向结果。GCJ-02 与 BD-09 之间用极坐标平移,大约加 0.0065 度经度和 0.006 度纬度,这两条公式不判断是否在中国境内。结果保留 6 位小数。
北京这个例子实际偏了多远
WGS84 经度 116.4074、纬度 39.9042,落在北京中心附近,转到 GCJ-02 是 116.413642、39.905603。同一点转到 BD-09 是 116.420046、39.911865。在半径 6378137 米的球面上,WGS84 点和 GCJ-02 点大约相距 555 米。纬度小数点后第 6 位大约是 0.11 米,比这个模型细,也比手持 GPS 细。页面仍打印 6 位,是为了和同一套多项式的其他实现对照,不是测量坐标。
把这个 GCJ-02 点反射回 WGS84,得到 116.407403、39.904202。和起点每个轴大约差 0.000003 度。这是一次正向计算的近似,不能证明某个厂商的封闭算法可以严格求逆。包围盒以外,WGS84 和 GCJ-02 互相拷贝:东京 139.6917、35.6895 原样返回,因为经度超过了 137.8347。BD-09 仍会平移中国境外的点,因为它的公式没有这道国境判断。不要对巴黎的坐标做一次 BD-09「纠正」还指望它原地不动。
不要指望它做什么
这是被广泛复制的公开近似,不是某家地图私有版本的认证复现,也不是对中国测绘法规的说明。两个都写着 GCJ-02 的应用,底图更新后仍可能差几米。页面不会导航,不会估计行程时间,也不会显示拥堵。需要车道、宗地界址或工程放样时,用测量人员指定的控制点。若只是想把一条 GPS 轨迹的照片钉标到高德底图上,人们说的就是 WGS84 转 GCJ-02,上面那个残差就是这个例子上反向误差的大小。
复制按钮写出的顺序是纬度、经度。屏幕上的两个框是经度在前。把复制结果按原顺序贴回两个框,坐标轴会对调,点会跑到别处。东经为正,北纬为正。负号表示另一个半球,不是装饰。
计算示例
输入:WGS84 转 GCJ-02,经度 116.4074,纬度 39.9042
输出:116.413642,39.905603。在半径 6378137 米的球面上大约相距 555 米
输入:同一 WGS84 点转到 BD-09
输出:116.420046,39.911865
输入:WGS84 转 GCJ-02,东京 139.6917,35.6895
输出:139.691700,35.689500。数值不变
使用限制
- 反向转换有残差。上面的 GCJ-02 点转回 WGS84 是 116.407403、39.904202。
- 复制按钮的顺序是纬度、经度。表单上是经度、纬度。
- 米数是球面距离,不是偏移公式内部那个椭球上的大地线。
常见错误
- 点已经是 GCJ-02,仍按 WGS84 再转一次,偏移会叠两次。
- 对中国境外的点做 GCJ-02 与 BD-09 互转,还以为国境框会拦住。那一对公式没有这道判断。
- 承诺转换后的图钉对得上路况或车道。页面看不到路网。
常见问题
高德、腾讯、百度各用哪套?▾
为什么转回去不完全一样?▾
能上传一条轨迹吗?▾
来源
- 本实现中的常数:克拉索夫斯基长半轴 a = 6378245 米,ee = 0.00669342162296594323,计算原点东经 105 度、北纬 35 度,包围盒东经 72.004 至 137.8347、北纬 0.8293 至 55.8271。
- 这里的 BD-09 平移:GCJ-02 转 BD-09 的正向极坐标步骤大约加 0.0065 度经度和 0.006 度纬度。这是公开近似,不是百度认证接口。