WGS84 / GCJ-02 / BD-09 坐标体系说明
中国地图场景存在三种坐标系:WGS84(GPS 原始坐标)、GCJ-02(高德、腾讯底图使用,俗称火星坐标)、BD-09(百度二次加密)。数据与底图坐标系不一致就会整体偏移数百米。记住一条规则:先统一坐标系再叠加,本文说明三种坐标的关系与转换方法。
WGS84、GCJ-02、BD-09 分别是什么
三种坐标的差异源于对真实经纬度的不同加密处理。
| 坐标系 | 说明 | 典型使用方 |
|---|---|---|
| WGS84 | GPS 设备原生坐标(EPSG:4326),未经加密,GeoJSON 标准坐标 | Leaflet、Mapbox、Google Earth、QGIS/ArcGIS 通用 |
| GCJ-02 | 国测局加密偏移后的坐标(火星坐标),与真实位置偏差数百米 | 高德地图、腾讯地图、部分国内服务 |
| BD-09 | 在 GCJ-02 基础上再做二次加密 | 百度地图 |
为什么会偏移
加密是测绘法规要求,不是数据错误。
法律要求加密
国内公开地图服务按测绘法规对坐标做非线性偏移处理,因此高德、腾讯、百度的坐标都不是真实经纬度,而是加密后的近似值。
混用即错位
把 WGS84 数据直接叠加到高德底图上会整体偏移约数百米;反之亦然。偏移量随位置不同,不能简单加减常数。
典型表现
边界线与底图道路、地名对不齐,标记点落在错误的位置——这类问题九成是坐标系混用。
什么时候需要转换
判断标准只有一条:数据的坐标系是否与底图一致。
- Leaflet / Mapbox / QGIS / ArcGIS 底图(OSM、天地图、自有瓦片)→ 用 WGS84,无需转换。
- 高德 / 腾讯 底图 → 数据需先转 GCJ-02。
- 百度 底图 → 数据需先转 BD-09(或 WGS84→GCJ-02→BD-09 分步转换)。
- 不确定时,先取一个已知地标验证是否对位。
怎么转换坐标
JavaScript 用 coordtransform / gcoord,Python 也有对应实现。
// JavaScript:gcoord(支持 WGS84 / GCJ02 / BD09 互转) import gcoord from 'gcoord'; const result = gcoord.transform( [116.404, 39.915], // 要转换的坐标 gcoord.WGS84, // 当前坐标系 gcoord.GCJ02 // 目标坐标系 ); // Python:coord_convert / pyproj 方案或坐标转换库 from coord_convert.transform import gcj2wgs, wgs2gcj lng, lat = wgs2gcj(116.404, 39.915) # WGS84 → GCJ-02
批量转换整个 GeoJSON 时,遍历每个坐标点调用转换函数即可;注意 GCJ-02 转换仅适用于中国大陆范围,港澳台及海外坐标不做偏移。
本站边界数据:统一 WGS84,免转换
省、市、区县、乡镇、村五级边界均采用 GPS 原生 WGS84(EPSG:4326)。
常见问题
WGS84 和 GCJ-02 有什么区别?▶
WGS84 是 GPS 设备的原生坐标(EPSG:4326),未经加密,是 GeoJSON 的标准坐标;GCJ-02 是国测局对真实坐标做非线性偏移后的加密坐标(火星坐标),高德、腾讯底图使用。两者相差约数百米,不能直接互换。
为什么高德、百度的地图坐标会偏移?▶
国内公开地图服务按测绘法规要求对坐标做加密偏移处理,高德、腾讯使用 GCJ-02,百度在 GCJ-02 基础上再做一次 BD-09 加密。因此这些平台显示的坐标并非真实经纬度,与其他来源的 WGS84 数据混用时就会错位。
什么时候需要做坐标转换?▶
判断标准是数据的坐标系是否与底图一致:Leaflet、Mapbox、QGIS、ArcGIS 底图用 WGS84 无需转换;高德、腾讯底图需转 GCJ-02;百度底图需转 BD-09。不确定时可先取已知地标验证对位。
怎么把 WGS84 转成 GCJ-02?▶
JavaScript 可用 coordtransform、gcoord 等库,Python 可用 coord_convert 等实现,对每个坐标点调用转换函数即可。批量转换 GeoJSON 时遍历所有坐标点处理;注意 GCJ-02 转换仅适用于中国大陆范围。
本站边界数据是什么坐标系?▶
省、市、区县、乡镇、村五级边界统一采用 WGS84(EPSG:4326),即 GeoJSON 标准坐标,Leaflet、Mapbox、QGIS、ArcGIS 可直接加载无需转换;若需叠加高德或百度底图,按本文方法转换即可。
需要可直接使用的边界数据?
省、市、区县边界可 地图分区下载省市区县边界;乡镇边界与全国整级打包请在 整级打包页 选购;村界数据请在 村级边界页 按省获取。