跳到计算器
Calculate This

两点距离计算(经纬度与地址)

输入两个地址或坐标,使用当前位置或点击地图。即可得到以公里、英里、海里和米表示的直线距离,同时给出半正矢公式和精确 WGS 84 椭球的结果,以及方位角和中点。

A

或任意格式的坐标:56.9496, 24.1052 · 56°56′58.6″N · N 56° 56.976′

39.904200, 116.407400 — 北京

B

或任意格式的坐标: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
计算过程(使用你的数字)
  1. 把度换算成弧度(× π/180): φ₁ = 39.904200° = 0.696460 rad; φ₂ = 31.230400° = 0.545073 rad; Δφ = -0.151386 rad; Δλ = 121.473700° − (116.407400°) = 0.088424 rad
  2. a = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2) = -0.075621² + 0.767118 · 0.855089 · 0.044197² = 0.006999873
  3. c = 2 · atan2(√a, √(1 − a)) = 2 · atan2(0.083665, 0.996494) = 0.167526318 rad
  4. d = R · c = 6,371.0088 km × 0.167526318 = 1067.312 km (大圆距离(半正矢,球面))
  5. WGS 84 椭球(a = 6 378 137 m,f = 1/298.257223563),用 Karney 方法求测地线: s = 1065.846 km; s − d = -1.465 km
  6. 初始方位角: θ = 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

计算方法

  1. 输入 A 点:地址或地名、任意格式(DD、度分秒、DDM)的坐标,或点击“使用我的位置”。
  2. 用同样方式输入 B 点,或打开地图点击设定 A 和 B。
  3. 选择单位:公里、英里、海里或米。
  4. 并排查看精确的 WGS 84 距离与半正矢大圆距离。
  5. 查看初始方位角、方向和两点之间的中点。
  6. 展开“计算过程”查看代入你数字的半正矢公式,并复制分享链接。

常见问题

半正矢距离和 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° 西)。长距离路线中方向会变化,因此到达时的终点方位角不同。

来源

相关计算器