地图坐标系转换
把一个坐标点在常用的地理与投影坐标系之间互转:WGS84(GPS、国际通用)、GCJ-02(高德、腾讯、Google 中国)、BD-09(百度经纬度)、BD-09MC(百度墨卡托)、CGCS2000(2000 国家大地坐标系)、Web 墨卡托(Google、OSM、Mapbox 切片),以及面向欧洲、北美、英国、日本、澳大利亚、法国的常用 EPSG 预设。还支持直接输入任意 EPSG 代码,从 epsg.io 拉取 proj4 定义后进行换算。换算结果一次性列出所有目标坐标系,便于直接对照、复制和归档。所有解析、加密偏移与投影换算都在浏览器本地完成,输入不会上传。
- 中国大陆四套坐标系一并覆盖:WGS84 ↔ GCJ-02 ↔ BD-09 ↔ BD-09MC,地图来源不同时不再算错偏移
- 全球用户友好:WGS84、Web 墨卡托、CGCS2000、ETRS89、NAD83、OSGB36、JGD2011、GDA2020、Lambert-93 内置
- 支持自定义 EPSG 代码,从 epsg.io 拉取定义,覆盖几千种区域投影与国家网格
- 一次输入展开所有目标坐标系的结果,省去反复切换源 / 目标坐标的步骤
- 加密偏移坐标(GCJ-02、BD-09)的结果标记为近似值,避免被当作米级精度使用
GPS、OpenStreetMap、Mapbox、以及中国大陆以外的 Google Maps 默认使用 WGS84。
经纬度通常 6 至 8 位,投影米制通常 2 至 4 位。选自动会按坐标系类型给出合适的默认。
从 epsg.io 拉取 proj4 定义,覆盖几千种区域投影与国家网格。
- 经度
- 116.397428
- 纬度
- 39.90923
- X
- 12,957,302.4146
- Y
- 4,852,760.5844
- 经度
- 116.40367163
- 纬度
- 39.91063351
- 经度
- 116.4100441
- 纬度
- 39.91697286
- X
- 12,958,847.8339
- Y
- 4,826,208.9639
- 经度
- 116.397428
- 纬度
- 39.90923
- 经度
- 116.397428
- 纬度
- 39.90923
- 经度
- 116.397428
- 纬度
- 39.90923
- X
- 5,630,579.5125
- Y
- 7,767,574.6702
- 经度
- 116.397428
- 纬度
- 39.90923
- 经度
- 116.397428
- 纬度
- 39.90923
- X
- 7,427,213.3545
- Y
- 11,743,911.4685
功能简介
把同一个地理点在不同坐标系之间换算,是地图开发、定位接口对齐、跨数据源整理和跨区域协作里反复出现的小事。这个工具把中国大陆地图常见的加密偏移坐标和全球通用的 EPSG 投影统一到一个面板里,避免在多个工具之间反复切换。
- 01
中国大陆地图坐标系四件套
WGS84、GCJ-02、BD-09、BD-09MC 一次换齐。设备 GPS 拿到的是 WGS84,高德、腾讯、Google 中国用 GCJ-02,百度用 BD-09,瓦片计算需要 BD-09MC——四套并排展示,直接复制就能贴回不同的地图 SDK。
- 02
全球坐标系 + 几千种 EPSG
WGS84、Web 墨卡托、CGCS2000 内置外,预设欧洲 ETRS89、北美 NAD83、英国 OSGB36、日本 JGD2011、澳大利亚 GDA2020、法国 Lambert-93。自定义 EPSG 输入框走 epsg.io,覆盖几千种区域投影与国家网格。
- 03
一次输入展开所有目标
不需要先选源坐标系再选目标坐标系。输入一个点后,所有内置坐标系的等价结果一次列出,鼠标移到对应行就能复制,省去反复切换的时间。
- 04
加密偏移结果明确标记
GCJ-02、BD-09 是测绘局对真实坐标做的非线性加密偏移,换算只能给出米级近似。结果行会标上"≈",避免被当作 GPS 米级精度使用,也提醒在精确测量、测绘行业场景下要复核。
- 05
Web 墨卡托与瓦片对齐
Google Maps、OSM、Mapbox、Leaflet 等 Web 地图默认使用 EPSG:3857(Web 墨卡托),单位米。把经纬度转成 X / Y 后可直接用于 TMS / XYZ 瓦片计算、热力图渲染和栅格叠加。
- 06
本地处理,不上传任何坐标
加密偏移与 proj4 投影换算都在浏览器内完成。只有点击"自定义 EPSG"时,工具才会向 epsg.io 请求 proj4 定义,而坐标值本身从不离开你的设备。
如何使用
整个流程在一个面板里完成:选源坐标系、输入坐标、查看所有目标的等价结果,按需复制粘贴回代码或工单。
- 01
在源坐标系下拉里选输入数据所属的坐标系,例如设备 GPS 输出选 WGS84,高德 / 腾讯导出选 GCJ-02。
- 02
经纬度坐标系可选输入顺序:经度在前(ISO 标准)或纬度在前(Google Maps 习惯);投影坐标系直接按 X、Y 输入。
- 03
在两个输入框里依次填入数值,支持小数、负数与科学计数法(如 1.5e7)。
- 04
右侧自动展开所有目标坐标系的等价结果,源坐标系一行高亮,加密偏移坐标会标上"≈"。
- 05
调整保留小数位到需要的精度,点击对应行的"复制"把数值粘到代码、工单或地图 SDK 的初始化参数里。
- 06
需要其他区域 / 国家网格时,在"自定义 EPSG"里输入代码(如美国 UTM 50N 用 32650),工具会自动从 epsg.io 加载定义并加入结果列表。
功能说明
一个面板覆盖中国地图坐标系、全球通用投影、区域国家网格和任意 EPSG 代码,精度可控、说明清晰。
- 中国坐标系:WGS84、GCJ-02、BD-09、BD-09MC、CGCS2000 全部内置
- 全球通用:WGS84(EPSG:4326)、Web 墨卡托(EPSG:3857)一并覆盖
- 区域预设:ETRS89、NAD83、OSGB36(英国国家网格)、JGD2011(日本)、GDA2020(澳大利亚)、Lambert-93(法国)
- 自定义 EPSG:输入代码后从 epsg.io 拉取 proj4 定义,覆盖几千种区域投影
- 加密偏移:GCJ-02、BD-09 使用 gcoord 算法,与高德、百度地图 SDK 输出一致
- 投影换算:基于 proj4js,与 QGIS、ArcGIS、PostGIS 的结果在米级内对齐
- 一次输入展开所有目标坐标系结果,省去反复切换
- 加密偏移坐标的结果行用"≈"标记,避免误用为米级精度
- 经纬度可选两种输入顺序:经度在前或纬度在前
- 投影坐标系按 X / Y 输入,单位米
- 小数位数可选 自动 / 4 / 6 / 8 / 10,按坐标系类型自动给出合适默认
- 坐标范围实时校验:经度 ±180、纬度 ±90,BD-09 / GCJ-02 自动限制在 ±85
- 示例坐标按当前源坐标系自动给出,方便对照与回归测试
- 所有解析、加密偏移与投影换算在浏览器本地完成,坐标不会上传
- 只有用户主动输入自定义 EPSG 代码时,才会向 epsg.io 请求 proj4 定义
适合哪些场景
坐标系转换的价值在于让数据在不同地图源、不同标准之间正确对齐。下面是几个最常出现的具体场景。
-
设备 GPS 上图到中国大陆地图
车机、手机、IoT 设备的定位输出几乎都是 WGS84。如果直接画到高德、腾讯、百度地图上会偏移几十到上百米。把 WGS84 转成 GCJ-02(高德、腾讯)或 BD-09(百度)后再上图,定位点才能落在正确道路上。
-
不同来源数据对齐
一份订单的发货地址来自高德(GCJ-02),收货地址来自百度(BD-09),仓库坐标来自内部 GIS(WGS84)。统一转成 WGS84 后再做距离计算、围栏判定、聚类分析,才能避免几公里级的系统性偏差。
-
面向国际地图(OSM / Google / Mapbox)发布
OpenStreetMap、Google Maps、Mapbox 全部基于 WGS84 与 Web 墨卡托。把高德、腾讯、百度等中国大陆地图数据里的 GCJ-02 / BD-09 还原为 WGS84,国际地图才能正确展示这些位置。
-
瓦片地图与栅格叠加
Leaflet、Mapbox GL、OpenLayers 的 TMS / XYZ 瓦片默认用 EPSG:3857(Web 墨卡托),单位米。把经纬度转成 X / Y 后可以直接用于瓦片坐标计算、热力图渲染、栅格图层叠加。
-
国土测绘与法定基准
中国官方测绘项目、规划图、招投标要求使用 CGCS2000;与 WGS84 在米级以内一致,但报送数据时必须按 CGCS2000 标注,避免合规问题。
-
欧洲、北美、日本等区域项目
欧洲用 ETRS89、北美用 NAD83、英国用 OSGB36 国家网格、日本用 JGD2011、法国用 Lambert-93。向某一地区提交地图数据时按当地法定基准标注,是合规与可用性的基本要求。
-
GIS 数据迁移与清洗
shapefile、GeoJSON、CSV 里的坐标常常没有标注坐标系。先把样本点放进工具里对照已知地标(如天安门、悉尼歌剧院、埃菲尔铁塔)的标准坐标,就能反推数据来源是哪一种坐标系。
-
API 字段与文档对齐
高德、百度、腾讯地图开放平台的接口文档明确要求传入对应坐标系;OpenStreetMap、Mapbox 默认 WGS84。在 API 调用前用本工具确认坐标系,能减少"位置漂移"类的工单。
使用建议
坐标系换算本身是确定的,但结果写进代码、数据库、上下游接口时,源坐标系是否标清、精度是否对齐才决定下游会不会出错。
- 数据库与日志统一存 WGS84 经纬度(或带明确 SRID 的几何字段),仅在展示层按目标地图 SDK 做转换;不要让上游表里混着 GCJ-02 与 WGS84。
- 字段命名里带上坐标系信息,例如 lngWgs84、latGcj02、xMercator、yMercator,避免读到一个 longitude 字段却不知道是否被偏移。
- PostGIS / MySQL 几何字段始终指定 SRID(如 4326 表示 WGS84、3857 表示 Web 墨卡托、4490 表示 CGCS2000),不要用默认 0。
- 对接中国大陆主流地图 SDK 时按各家要求传入坐标系:高德 / 腾讯用 GCJ-02、百度用 BD-09;对接 Google Maps(中国大陆以外)、Mapbox、OSM、Leaflet 时用 WGS84 + Web 墨卡托。
- 处理大量坐标时优先在服务端用 PostGIS、GeoPandas、proj 等专业库批量转换,本工具更适合手动核对、调试和单点换算。
- 记录加密偏移坐标的转换路径与算法版本:GCJ-02 与 BD-09 的具体偏移公式由测绘局维护,不同库的实现可能存在亚米级差异。
- 不要把 GCJ-02 当作"中国版 WGS84"。它是非线性加密偏移,反算到 WGS84 后必然引入几米到十几米的不确定性,不可用于精确测量。
- 面向使用区域基准(NAD83、ETRS89、JGD2011 等)的项目交付前,用 epsg.io 确认对方要求的 EPSG 代码与基准,避免直接用 WGS84 替代。
边界与注意事项
工具专注在二维水平坐标点的换算上,不涉及高程基准、批量大数据集和加密偏移的逆向精确求解。
- 不处理高程换算。同一点的 WGS84 椭球高与海拔高(如 EGM96 / EGM2008 大地水准面)相差几十米,需要专门的高程模型库。
- 不支持批量大数据集换算。本工具一次只处理一个坐标点;批量任务(成千上万行)请使用 PostGIS、GeoPandas、ogr2ogr、proj 命令行。
- GCJ-02 与 BD-09 的反算是数值迭代近似,不是闭式精确解,残差通常在亚米级;测绘、规划等高精度场景请使用官方算法或商业 SDK。
- CGCS2000 与 WGS84 在数值上几乎一致(米级以内),但语义不同。报送官方数据时应按要求标注 CGCS2000,不能简单替换为 WGS84。
- 加载自定义 EPSG 时依赖 epsg.io 的可用性。受网络环境影响时,工具会显示加载失败提示。
- 不做坐标系自动识别。给定一组未知来源的坐标,本工具无法反推它属于哪种坐标系——可以拿已知地标对比来辅助判断。
- 历史基准(如北京 54、西安 80)目前不在预设里。如果需要请通过自定义 EPSG 加载(如 EPSG:2436 北京 54 高斯-克吕格 13 带)。
- 不替代专业 GIS 软件的能力,如重投影栅格、矢量裁剪、坐标系数据库管理等。
常见问题
这些是地图开发、定位接口对齐、跨区域协作和测绘行业里最常被搜索的具体换算问题。
GCJ-02、BD-09、WGS84 有什么区别?
WGS84 是 GPS、国际通用的真实地理坐标。GCJ-02(俗称"火星坐标")是国家测绘局对 WGS84 做的非线性加密偏移,仅在中国大陆境内偏移,境外不偏移;高德、腾讯、Google 中国地图使用 GCJ-02。BD-09 是百度在 GCJ-02 基础上再做一次加密偏移得到的坐标,仅百度地图使用。
为什么 GPS 坐标直接画在中国大陆地图上会偏移几十米?
设备 GPS 输出的是 WGS84,中国大陆主流地图(高德、腾讯、百度)使用的是 GCJ-02 或 BD-09。直接画 WGS84 坐标到 GCJ-02 / BD-09 地图,会出现 50 到 500 米的系统性偏移,落在道路一侧或邻近街区。把 WGS84 转成 GCJ-02 或 BD-09 后再画就准确了。
高德地图、腾讯地图、Google 中国版用的是哪种坐标系?
都是 GCJ-02。所以在三家地图之间互导坐标无须做坐标系换算,只有跨到百度(BD-09)或 OSM / 中国大陆以外的 Google Maps(WGS84)才需要换算。
百度地图 API 用什么坐标系?
百度地图 JS API 默认使用 BD-09(经纬度),瓦片层使用 BD-09MC(百度墨卡托,单位米)。其它来源的数据传入百度 API 时需要先转成 BD-09,或在调用时通过 BMap.Convertor 让百度服务端转换。
CGCS2000 和 WGS84 是同一个东西吗?
不是。CGCS2000 是中国 2000 国家大地坐标系,是法定测绘基准;WGS84 是国际通用 GPS 坐标系。两者基于不同椭球(CGCS2000 用 GRS80、WGS84 用 WGS84 椭球),数值上在中国大陆境内米级以内一致,但报送官方数据时不能互相替代。
Web 墨卡托(EPSG:3857)和经纬度的关系?
Web 墨卡托是把 WGS84 经纬度按正轴等角圆柱投影到平面后的坐标系,单位米。Google Maps、OSM、Mapbox、Leaflet 的瓦片地图底层都用它。把经纬度转 X / Y 后可以直接做瓦片计算、热力图渲染、距离估算(但要注意高纬度的面积失真)。
如何在 PostGIS 里存中国坐标?
推荐统一存 WGS84(SRID 4326)。如果需要中国法定基准,使用 CGCS2000(SRID 4490)。不要直接存 GCJ-02 / BD-09,因为这两者不是标准 SRID,会让 ST_Distance、ST_Within 等空间函数得到错误结果。展示到中国大陆地图时在应用层再做转换。
怎么从 EPSG 代码查到具体定义?
到 epsg.io 输入代码即可看到 WKT 与 proj4 字符串。本工具的"自定义 EPSG"会自动拉取 proj4 定义并加入换算结果列表,常见用法包括 UTM 各带(EPSG:32601–32660 / 32701–32760)、各国国家网格、Lambert / Albers 等投影。
GCJ-02 反算到 WGS84 准确吗?
只能近似。GCJ-02 是非线性加密偏移,没有闭式逆变换,库里都是数值迭代求解,残差通常在亚米级。测绘、自动驾驶高精地图等场景请使用官方算法或商业 SDK,不要依赖开源近似实现。
中国大陆以外的 GPS 坐标需要转换吗?
GCJ-02 偏移只在中国大陆范围内生效。香港、澳门、台湾以及其它地区的坐标,WGS84 和 GCJ-02 数值上一致,可以直接用于国际地图。但调用中国大陆地图 SDK 时仍要按 SDK 要求传入对应坐标系字段。
英国国家网格 (OSGB36) 怎么用?
OSGB36 是英国本土使用的横轴墨卡托投影(EPSG:27700),坐标单位米,原点偏移设计成 6 位全数字坐标。英国官方测绘、房产、规划数据多以此格式发布。本工具内置 OSGB36 转换,与 WGS84 经纬度互转误差在米级以内。
怎么判断一组未知坐标属于哪种坐标系?
取一个已知地标的坐标对照:例如天安门标准 WGS84 约 116.397428, 39.90923。如果数据里这个点出现在 116.40361, 39.91043 附近,那是 GCJ-02;出现在 116.41005, 39.91635 附近,那是 BD-09;如果是 12958180, 4825923 这种 7 位以上数字,那是 Web 墨卡托或 BD-09MC。
更多相关工具
完成坐标系换算后,可以继续在数据与格式转换分类里处理单位换算、进制转换等其它规范化工作。