地图坐标系转换
在线拾取坐标,支持WGS84 GCJ02 BD09等坐标
WGS84
地球坐标系,国际通用标准。GPS、海外 Google 地图均采用此标准。
GCJ02
火星坐标系,WGS84 加密。国内 Google、高德、腾讯地图通用标准。
BD09
百度坐标系,GCJ02 再次加密。百度地图产品专用坐标标准。
CGCS2000
国家2000大地坐标系,我国自主建立的现代地心大地坐标系统。
高斯-克吕格投影原理
我国主要采用分带投影方式。1:2.5万-1:50万地图采用 6度分带;1:1万以下采用 3度分带。
3°带 = 中央经线 ÷ 36°带 = (中央经线+3) ÷ 6| 6度分带 (Gauss-Krüger 6°) | 3度分带 (Gauss-Krüger 3°) | ||||
|---|---|---|---|---|---|
| 带号 | 经度范围 | 中央经线 | 带号 | 经度范围 | 中央经线 |
| 12 | 66°E - 72°E | 69°E | 23 | 67.5°E - 70.5°E | 69°E |
| 24 | 70.5°E - 73.5°E | 72°E | |||
| 13 | 72°E - 78°E | 75°E | 25 | 73.5°E - 76.5°E | 75°E |
| 26 | 76.5°E - 79.5°E | 78°E | |||
| 14 | 78°E - 84°E | 81°E | 27 | 79.5°E - 82.5°E | 81°E |
| 28 | 82.5°E - 85.5°E | 84°E | |||
| 15 | 84°E - 90°E | 87°E | 29 | 85.5°E - 88.5°E | 87°E |
| 30 | 88.5°E - 91.5°E | 90°E | |||
| 16 | 90°E - 96°E | 93°E | 31 | 91.5°E - 94.5°E | 93°E |
| 32 | 94.5°E - 97.5°E | 96°E | |||
| 17 | 96°E - 102°E | 99°E | 33 | 97.5°E - 100.5°E | 99°E |
| 34 | 100.5°E - 103.5°E | 102°E | |||
| 18 | 102°E - 108°E | 105°E | 35 | 103.5°E - 106.5°E | 105°E |
| 36 | 106.5°E - 109.5°E | 108°E | |||
| 19 | 108°E - 114°E | 111°E | 37 | 109.5°E - 112.5°E | 111°E |
| 38 | 112.5°E - 115.5°E | 114°E | |||
| 20 | 114°E - 120°E | 117°E | 39 | 115.5°E - 118.5°E | 117°E |
| 40 | 118.5°E - 121.5°E | 120°E | |||
| 21 | 120°E - 126°E | 123°E | 41 | 121.5°E - 124.5°E | 123°E |
| 42 | 124.5°E - 127.5°E | 126°E | |||
| 22 | 126°E - 132°E | 129°E | 43 | 127.5°E - 130.5°E | 129°E |
| 44 | 130.5°E - 133.5°E | 132°E | |||
| 23 | 132°E - 138°E | 135°E | 45 | 133.5°E - 136.5°E | 135°E |
中国坐标系转换原理 Encryption Logic
由于测绘法规要求,在中国境内使用的在线地图必须进行非线性偏移(加密)。
国际标准,GPS 原始信号坐标,未经任何人为加密。
俗称“火星坐标”。高德、谷歌国内地图均使用此标准。
百度在 GCJ-02 基础上进行的二次加密,仅适用于百度系产品。
Spatial Offset Visualization
直接将 WGS84 坐标在百度地图上显示,会产生数百米的视觉偏移。本工具通过 逆向迭代算法 实现坐标精准对齐。
微信小程序开发中,wx.getLocation 默认返回 wgs84 或 gcj02,在调用百度地图 API 前必须进行转换。
开发必读:三大致命注意事项
避免“点不对图”
不要将 WGS-84 (GPS原始数据) 直接在 GCJ-02 (高德/腾讯) 底图上打点。这会导致 300-500 米的肉眼可见偏移。
测距严禁使用经纬度
经纬度是角度,不是距离。在进行距离计算或面积量算前,必须投影到平面坐标系(如 UTM),否则纬度越高,误差越大。
存储原始数据
数据库应统一存储 WGS-84。加密坐标(GCJ/BD)仅在显示层转换。因为加密过程是“有损”的,存原始值方便未来迁移。
典型使用场景
适用于:外卖配送、打车软件、附近搜索。
- 高德、腾讯地图 API 必须用 GCJ-02
- 百度地图 API 必须用 BD-09
适用于:无人机飞行、高精地图建模、工程施工。
- 直接获取 GPS 硬件原始信号
- 需要厘米级精度,拒绝任何人为偏移
> 实用小贴士
// 坐标识别
如果你拿到的经纬度是 116.397, 39.908 左右且位于北京,却发现偏移到了故宫外面的护城河里,那 99% 是因为你把 WGS-84 当成了 GCJ-02。
// 推荐工具
JavaScript 推荐使用开源库 gcoord 或 coordtransform。它们提供了极简的 API 进行 WGS84、GCJ02 和 BD09 之间的互转。