两点距离计算(经纬度与地址)
输入两个地址或坐标,使用当前位置或点击地图。即可得到以公里、英里、海里和米表示的直线距离,同时给出半正矢公式和精确 WGS 84 椭球的结果,以及方位角和中点。
或任意格式的坐标:56.9496, 24.1052 · 56°56′58.6″N · N 56° 56.976′
39.904200, 116.407400 — 北京
或任意格式的坐标:56.9496, 24.1052 · 56°56′58.6″N · N 56° 56.976′
31.230400, 121.473700 — 上海
两点之间的距离: 北京 → 上海
1,065.85 公里
椭球面(WGS 84,Karney/Vincenty) · 最精确的值,基于 GPS 使用的 WGS 84 椭球。
✈️ 沿地球表面的直线距离(“乌鸦飞行距离”),不是公路、铁路或驾车距离,后者通常长 20–40 %。
| 单位 | 椭球面(WGS 84,Karney/Vincenty) | 大圆距离(半正矢,球面) |
|---|---|---|
| 公里 | 1,065.85 公里 | 1,067.31 公里 |
| 英里 | 662.29 英里 | 663.20 英里 |
| 海里 | 575.51 海里 | 576.30 海里 |
| 米 | 1,065,846 米 | 1,067,312 米 |
| 差异 | 1.47 公里 (0.137 %) | |
- 初始方位角(A → B)
- 153.0° (东南, SSE)
- 终点方位角(到达 B 时)
- 155.9° (东南, SSE)
- 中点
- 35.595409, 119.077407
35°35′43.5″N 119°04′38.7″E
计算过程(使用你的数字)
- 把度换算成弧度(× π/180): φ₁ = 39.904200° = 0.696460 rad; φ₂ = 31.230400° = 0.545073 rad; Δφ = -0.151386 rad; Δλ = 121.473700° − (116.407400°) = 0.088424 rad
- a = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2) = -0.075621² + 0.767118 · 0.855089 · 0.044197² = 0.006999873
- c = 2 · atan2(√a, √(1 − a)) = 2 · atan2(0.083665, 0.996494) = 0.167526318 rad
- d = R · c = 6,371.0088 km × 0.167526318 = 1067.312 km (大圆距离(半正矢,球面))
- WGS 84 椭球(a = 6 378 137 m,f = 1/298.257223563),用 Karney 方法求测地线: s = 1065.846 km; s − d = -1.465 km
- 初始方位角: θ = atan2(sin Δλ · cos φ₂, cos φ₁ · sin φ₂ − sin φ₁ · cos φ₂ · cos Δλ) = 153.07° (sphere); α₁ = 152.97° (WGS 84)
地图
搜索和地址:Nominatim。地图数据 © OpenStreetMap 贡献者 (ODbL)。仅在您点击按钮或地图时,浏览器才会发送请求。 © OpenStreetMap · GeographicLib (Karney)
关于本工具
经纬度距离:半正矢(Haversine)公式
半正矢公式计算球面上的大圆距离:a = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2),c = 2 · atan2(√a, √(1 − a)),d = R · c,其中纬度 φ、经度 λ 为弧度,地球平均半径 R = 6 371.0088 km。由于地球不是完美球体,误差约在 0.5 % 以内。
WGS 84 椭球上的精确距离(Vincenty / Karney)
GPS 使用两极扁平的 WGS 84 椭球(a = 6 378 137 m,f = 1/298.257223563)。本工具用 Karney 算法(Vincenty 公式的现代继任者)求解测地线:与 Vincenty 的结果相差不到一毫米,并且在近对跖点也能收敛。例如北京到上海的直线距离约 1 066 公里。注意:中国大陆部分地图使用 GCJ-02 偏移坐标。
直线距离,而非道路距离
结果是沿地球表面的最短路径,即飞机飞行的距离。驾车、步行或铁路路线通常要长 20–40 %。初始方位角表示出发方向(0° = 北,90° = 东);长距离航线中方位会不断变化,因此航线在平面地图上看起来是弯的。
公式
a = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)c = 2 · atan2(√a, √(1 − a))d = R · c,R = 6 371.0088 km(地球平均半径)WGS 84:a = 6 378 137 m,f = 1/298.257223563(Karney/Vincenty 测地线)θ = atan2(sin Δλ · cos φ₂, cos φ₁ · sin φ₂ − sin φ₁ · cos φ₂ · cos Δλ)1 英里 = 1.609344 km · 1 海里 = 1.852 km
计算方法
- 输入 A 点:地址或地名、任意格式(DD、度分秒、DDM)的坐标,或点击“使用我的位置”。
- 用同样方式输入 B 点,或打开地图点击设定 A 和 B。
- 选择单位:公里、英里、海里或米。
- 并排查看精确的 WGS 84 距离与半正矢大圆距离。
- 查看初始方位角、方向和两点之间的中点。
- 展开“计算过程”查看代入你数字的半正矢公式,并复制分享链接。
常见问题
半正矢距离和 Vincenty 距离有什么区别?
半正矢公式把地球当作球体(R = 6 371 km),误差最多约 0.5 %。Vincenty 和 Karney 使用两极扁平的 WGS 84 椭球,精度远小于 1 毫米。里加—塔林:半正矢 279.18 km,WGS 84 为 279.66 km。
这是驾车距离吗?
不是。这是直线距离,即沿地球表面的最短路径。道路要绕开地形和城镇,驾车距离通常长 20–40 %,请使用导航路线规划查询。
如何手算两个坐标之间的距离?
把纬度和经度换成弧度,计算 a = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2),再算 c = 2 · atan2(√a, √(1 − a)),d = 6 371.0088 km × c。Excel 中:=6371*ACOS(SIN(RADIANS(纬度1))*SIN(RADIANS(纬度2))+COS(RADIANS(纬度1))*COS(RADIANS(纬度2))*COS(RADIANS(经度2-经度1)))。
初始方位角是什么意思?
它是从 A 出发沿最短路径前往 B 时的起始方向,从正北按顺时针测量(0° 北、90° 东、180° 南、270° 西)。长距离路线中方向会变化,因此到达时的终点方位角不同。