经纬度坐标转换(WGS84 / GCJ-02 / BD-09)
转换所有处理都在浏览器本地完成,数据不上传服务器
同一栋楼在三套坐标系里是三个不同的数字,彼此差出几百米:WGS84 是 GPS 采到的原始坐标,GCJ-02 是国测局加密坐标(高德、腾讯、Google 中国区用它),BD-09 是百度在 GCJ-02 上又加的一层。把 GPS 坐标直接标到高德地图上会偏到马路对面,反过来也一样 —— 这不是精度问题,是三套人为定义的偏移。工具一次给出三套坐标,并算出与输入的直线距离(米),你会直观看到自己之前偏了多少。还有两件事写在这里:偏移只在中国境内施加,境外的点三套坐标完全相同(这是 GCJ-02 算法本身的规定,不是没算);顺序是一个显式选项,因为 Google 地图给的是「纬度,经度」而高德与百度的拾取工具给的是「经度,纬度」,猜错顺序会让结果偏到几百公里外。
功能
- 一次给出 WGS84、GCJ-02、BD-09 三套坐标,任意一套都能作为输入
- 算出与输入的直线距离(米),一眼看出偏移有多大
- GCJ-02 → WGS84 用迭代反解,精度到 1e-9 度(约 0.1 毫米)
- 境外的点会明确说明「三套坐标本就相同」,而不是让你以为工具没生效
- 输入顺序可选「纬度,经度」或「经度,纬度」,顺序写反时直接指出是顺序问题
- 逗号、空格、分号都能分;全角逗号与全角空格会自动归一半角
- ⚠️ 度分秒可以直接粘进来:`39°54′31.4″N 116°23′51.0″E`、`39d54m31.4sN`、`N39°54′31.4″`,以及十进制后缀半球字母(`39.908722N`)都认。分或秒 ≥ 60 会直接报错,而不是算出一个看着合理的坐标
- 同时给出度分秒写法(39°54′31.40″N 116°23′51.00″E),三套坐标系各一行
- 给出 Open Location Code(Plus Code 完整码),一种给人念、不依赖门牌号的地址写法
- 输入两行坐标即得两点之间的大圆距离与初始方位角(北京—上海 1068.3 km),距离同时给出公里、法定英里与海里
- ⚠️ 距离按球面公式算,结果里写明它与椭球测地线差千分之几 —— 长距离下是几公里
- 给出可直接打开的地图链接:OpenStreetMap、Google 地图、高德、百度、Bing 五家
- ⚠️ 每条链接用它自己那套坐标:OSM / Google / Bing 用 WGS84、高德用 GCJ-02、百度用 BD-09 —— 拿 WGS84 去拼百度链接会偏出几百米
- ⚠️ 每条链接标出坐标系与参数顺序:高德是「经度, 纬度」,与其余几家相反(写反会偏到另一个洲)
- 缩放在「世界 / 国家 / 城市 / 街区 / 建筑」五档里选,写进 OSM 与 Bing 的链接
- 小数位数可调,默认 6 位(约 0.1 米),与各家拾取工具一致
- 结果逐行可复制,且「(输入)」这类旁注不会混进复制文本
- 全部在浏览器本地完成,坐标不外传
使用方法
- 选输入的是哪套坐标系
- 按你手上数据的顺序选「纬度,经度」或「经度,纬度」
- 把坐标粘进输入框
- 三套坐标实时出现,点任意一行右边的按钮单独复制
常见问题
- Plus Code 是什么?和经纬度有什么区别?
- Open Location Code(Google 推的开放位置编码)把一块地方编成几个字母数字,天安门是 `8PFRW95W+FX`。它与经纬度的用途不同:经纬度是给机器算的,Plus Code 是给人念的 —— 很多地方没有门牌号,也没有正规地址,念一串坐标对方多半抄错,念 `8PFRW95W+FX` 就短得多。⚠️ 两点要知道:它代表一块地而不是一个点(10 位的码约 14 米见方,那块地里任意位置编出来都是同一个码);短码(省略前几位的那种)必须配一个参考位置才能还原,而各家地图挑的参考点还不一样 —— 所以这里只给完整码,不猜参考点。
- 两点的距离为什么和地图软件差几公里?
- 因为这里按球面公式算(把地球当成半径 6371.0088 km 的球),而地图软件走的是 WGS84 椭球上的测地线。地球是扁的,中长距离上这个差别是千分之几 —— 北京到上海约 1068 km,会差出几公里。日常问「大概多远」够用;要精确到米的测量结果请用 GIS 软件。方位角同理,而且它只描述出发点的朝向:沿大圆走的时候方位角是一路在变的。
- 度分秒是怎么算的?会不会出现 60 秒?
- 十进制度的小数部分乘 60 得分,剩下的再乘 60 得秒,秒四舍五入到两位小数(约 3 毫米,任何测绘表单都够用)。四舍五入带来一个必须处理的边界:`39.9999999` 的秒会舍入成 `60.00`,直接写出来就是 39°59′60.00″ —— 一个不存在的写法。所以秒进位到 60 时会往分上进位,分到 60 再往度上进位,结果是 40°00′00.00″。这条有专门的测试扫过一整段边界值。
- 为什么境外的坐标三套输出完全一样?
- 因为 GCJ-02 的偏移只在中国境内施加 —— 这是算法本身的规定,不是这里漏算了。落在境外的点时,WGS84 与 GCJ-02 定义上就是同一个值。BD-09 不一样:百度那一层偏移在全球都加,所以境外的 BD-09 仍然与另外两套不同。结果里会有一行说明把这件事讲清楚。
- 这三套坐标系到底是什么关系?
- WGS84 是国际标准,也是 GPS 芯片直接吐出来的值。GCJ-02 是国测局在 WGS84 上施加的一次非线性偏移,中国大陆的地图服务(高德、腾讯、Google 中国区)用它,目的是让公开地图坐标与真实坐标不一致。BD-09 是百度在 GCJ-02 之上再加的一次偏移,所以百度与其他两套都要转两次。港澳台与部分边境地带的情况各家处理不一致,这个工具按通用的矩形范围判断。
- 为什么输入顺序要单独选?
- 因为 Google 地图的「复制坐标」给的是「纬度,经度」,而高德与百度的坐标拾取工具给的是「经度,纬度」—— 两个数字都是十位左右的小数,肉眼分不出哪个是哪个。猜错的后果不是偏几百米,而是偏几百公里(纬度 39.9 被当成经度,位置直接跑到中亚)。所以这里不做猜测:顺序是选项,而且当纬度超出 ±90 时,提示会直接说「十有八九是顺序颠倒了」,而不是只报一句范围错误。
- 地图链接为什么点了会偏?为什么每条用的坐标不一样?
- 因为它们本来就用不同的坐标系:OpenStreetMap、Google、Bing 用 WGS84,高德用 GCJ-02,百度用 BD-09 —— 同一栋楼在这三套里是三个数字,彼此差几百米。所以工具给每条链接都先换算成它自己那套坐标再拼 URL,而不是拿一份坐标到处拼(后者是这类工具最常见的错,而且打开后看着就是「地图定位错了」)。⚠️ 参数顺序也每家不同:高德是 `position=经度,纬度`(经度在前),其余几家是纬度在前 —— 写反不是偏几百米,而是偏到另一个洲。每条链接左侧都标明了它用的是哪套坐标系、哪个顺序。
- 转换的精度是多少?
- GCJ-02 与 WGS84 之间的正反变换,正向是解析式、反向迭代到 1e-9 度(约 0.1 毫米)以内。BD-09 那一对是近似逆:反解式里用转换后的值代替原值去算两个微小扰动,往返残差在 1e-7 度量级(约 4 厘米)—— 对任何实际用途都够,但它确实不是精确逆,所以工具的精度声明按这个来写。另外,各家的实际偏移在边界地带略有出入,米级误差属于这个领域的常态。
- 坐标会被上传吗?
- 不会。三套坐标的换算全在浏览器内存里完成,页面不发送任何请求,断网也能用 —— 坐标常常对应具体的住址与作业地点,它们不会离开这台设备。
相关工具
单位换算
转换在长度、重量、温度、能量、压力、流量、力、密度等 26 类单位之间换算,输入一个值就能看到同类全部单位下的结果,全部在浏览器本地完成。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
颜色转换
转换在 HEX、RGB、HSL、HWB、CMYK 与 OKLab、OKLCH、Lab、XYZ 之间互转,另给出色温、反色、互补色、最接近的 ANSI 终端色与 WCAG 对比度。全部在浏览器本地完成。
PPI 计算
转换输入分辨率与屏幕尺寸,算出像素密度 PPI、点距毫米数与宽高比,并给出一句密度评价。
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。
进制转换
转换在二、八、十、十六、36、64 进制之间互转,六种结果一次全部给出,19 位的雪花 ID 也能一位不差。全部在浏览器本地完成。