专业坐标系转换工具
支持WGS84、GCJ02、BD09、CGCS2000、北京54、西安80等主流坐标系统
坐标系选择
坐标输入支持多种格式:十进制度、度分秒、度分
支持:116.404、116°24'14.4"E、116°24.24'E
支持:39.915、39°54'54"N、39°54.9'N
BJ54 / 西安80 七参数转换会使用该高度;互联网地图偏移和 WGS84/CGCS2000 同框架转换不依赖高度。
转换链路(1 步)
跨系统转换一律以 WGS84 为中枢。逐步核对中间值,可以直接定位是哪一段引入了偏移。
- 1WGS84 → GCJ-02国测局加偏算法116.41024450, 39.91640428
仅在中国境内生效,境外原值返回
在你的代码里复现这次转换
片段使用与本页完全相同的算法与参数,可直接粘贴运行。
# GCJ-02 / BD-09 无官方 EPSG,以下实现与在线工具一致
import math
_A = 6378245.0
_EE = 0.00669342162296594323
def _out_of_china(lng, lat):
return not (72.004 <= lng <= 137.8347 and 0.8293 <= lat <= 55.8271)
def _tr_lat(x, y):
r = -100.0 + 2.0*x + 3.0*y + 0.2*y*y + 0.1*x*y + 0.2*math.sqrt(abs(x))
r += (20.0*math.sin(6.0*x*math.pi) + 20.0*math.sin(2.0*x*math.pi)) * 2.0/3.0
r += (20.0*math.sin(y*math.pi) + 40.0*math.sin(y/3.0*math.pi)) * 2.0/3.0
r += (160.0*math.sin(y/12.0*math.pi) + 320*math.sin(y*math.pi/30.0)) * 2.0/3.0
return r
def _tr_lng(x, y):
r = 300.0 + x + 2.0*y + 0.1*x*x + 0.1*x*y + 0.1*math.sqrt(abs(x))
r += (20.0*math.sin(6.0*x*math.pi) + 20.0*math.sin(2.0*x*math.pi)) * 2.0/3.0
r += (20.0*math.sin(x*math.pi) + 40.0*math.sin(x/3.0*math.pi)) * 2.0/3.0
r += (150.0*math.sin(x/12.0*math.pi) + 300.0*math.sin(x/30.0*math.pi)) * 2.0/3.0
return r
def wgs84_to_gcj02(lng, lat):
if _out_of_china(lng, lat):
return lng, lat
d_lat = _tr_lat(lng - 105.0, lat - 35.0)
d_lng = _tr_lng(lng - 105.0, lat - 35.0)
rad = lat / 180.0 * math.pi
magic = 1 - _EE * math.sin(rad) ** 2
sqrt_magic = math.sqrt(magic)
d_lat = (d_lat * 180.0) / ((_A * (1 - _EE)) / (magic * sqrt_magic) * math.pi)
d_lng = (d_lng * 180.0) / (_A / sqrt_magic * math.cos(rad) * math.pi)
return lng + d_lng, lat + d_lat
def gcj02_to_wgs84(lng, lat, eps=1e-11, max_iter=30):
"""迭代精确反算,残差 < 1e-11°(约 1 μm),优于常见的 2*P - f(P) 近似"""
if _out_of_china(lng, lat):
return lng, lat
w_lng, w_lat = lng, lat
for _ in range(max_iter):
t_lng, t_lat = wgs84_to_gcj02(w_lng, w_lat)
d_lng, d_lat = lng - t_lng, lat - t_lat
w_lng += d_lng
w_lat += d_lat
if abs(d_lng) < eps and abs(d_lat) < eps:
break
return w_lng, w_lat
_BD = math.pi * 3000.0 / 180.0
def gcj02_to_bd09(lng, lat):
z = math.sqrt(lng*lng + lat*lat) + 0.00002 * math.sin(lat * _BD)
theta = math.atan2(lat, lng) + 0.000003 * math.cos(lng * _BD)
return z * math.cos(theta) + 0.0065, z * math.sin(theta) + 0.006
def bd09_to_gcj02(lng, lat):
x, y = lng - 0.0065, lat - 0.006
z = math.sqrt(x*x + y*y) - 0.00002 * math.sin(y * _BD)
theta = math.atan2(y, x) - 0.000003 * math.cos(x * _BD)
return z * math.cos(theta), z * math.sin(theta)
# WGS84 → GCJ-02
lng, lat = 116.404, 39.915
lng, lat = wgs84_to_gcj02(lng, lat)
print(lng, lat)转换精度信息
自定义七参数转换
使用您本地测绘成果的 Bursa-Wolf 七参数进行 WGS84 与地方坐标系间的高精度转换,参数可保存为预设。
坐标系说明
使用说明
精度与算法说明
GCJ-02 反算
加偏函数没有解析逆。常见实现用 2×P − f(P) 一次修正,残差 0.1~1 m; 本工具把正算残差反复反馈迭代,3~5 轮收敛,残差 < 1e-11°(约 1 μm)。 注意「算法无损」不等于「真值无损」——GCJ-02 的加偏参数本身来自公开逆向。
WGS84 / CGCS2000
两者同属 ITRF 框架,工具直接沿用同一组经纬度。需要历元与速度场改正的高精度作业, 请以当地测绘成果为准。
北京54 / 西安80
内置的是公开的区域近似七参数,只适合历史资料粗略叠加。 工程测量、施工放样、权属面积请在「自定义七参数」中填入本项目控制点解算的参数。
投影与距离
高斯-克吕格、UTM、Web Mercator 与 EPSG 互转基于 PROJ(proj4)严密公式; 距离与方位角使用 Vincenty 椭球面解算,近对跖点自动回退球面大圆解并标注。
全部计算在浏览器本地完成,坐标不会上传服务器。
其他工具
IP地址查询
查询IP地址的详细信息,包括地理位置、ISP等信息
浏览器指纹
浏览器指纹探测与唯一性识别,如 User Agent、分辨率、字体、WebGL、Canvas、音频特征、网络信息等
天气预报
实时天气查询服务
汇率查询工具
实时查询全球主要货币汇率,支持多种货币之间的转换
历史上的今天
了解历史上的重要事件,探索历史长河中的精彩瞬间
HTTP状态查询工具
通过状态码查询HTTP状态描述,支持100-599的状态码。
用户代理解析工具
用户代理解析工具
十二生肖查询
提供生肖查询服务,支持按年份、生肖和年龄查询,包括生肖性格分析、运势预测、相合相冲等详细信息。
星座查询
探索十二星座的性格、爱情、事业运势,提供专业的星座配对分析与百科知识。
元素周期表
元素周期表,支持多种元素周期表,元素周期表结果,元素周期表记录等!
色盲测试工具
色盲测试工具,支持多种色盲测试,色盲测试结果,色盲测试记录等!
中国历代王朝演变
中国历代王朝演变,支持查询中国历代王朝演变,中国历代王朝演变结果,中国历代王朝演变记录等!