如何在 MS Excel 或 LibreOffice 中进行“大圆”计算?

Afr*_*Afr 7 calculator worksheet-function microsoft-excel libreoffice-calc

我得到了两列带有纬度和经度值的列。我需要计算每一行中点之间的距离。我正在尝试使用这里看到的半正弦公式:

半正弦计算

这就是所谓的“大圆”计算。我需要在大量坐标上执行此计算。

数据看起来像这样:

  |        A        B    C    D    E   F    G
--|-------------------------------------------
0 |      LAT      LON rLAT dLAT dLON   a DIST
1 | 52.39964 13.04729  ...  ...  ... ...     
2 | 52.39985 13.04802  ...  ...  ... ...  ???
3 | 52.40116 13.04744  ...  ...  ... ...  ???
4 | 52.40147 13.04722  ...  ...  ... ...  ???
5 | 52.40163 13.04685  ...  ...  ... ...  ???
6 |      ...      ...  ...  ...  ... ...  ...
Run Code Online (Sandbox Code Playgroud)

现在,我为G2LibreOffice 中的字段尝试了以下内容:

C2=RADIANS(A2)
D2=RADIANS(A2-A1)
E2=RADIANS(B2-B1)
F2=SIN(D2/2)*SIN(D2/2)+SIN(E2/2)*SIN(E2/2)*COS(C1)*COS(C2)
G2=2*ATAN2(SQRT(F2), SQRT(1-F2))*6371
Run Code Online (Sandbox Code Playgroud)

结果G220015这是相当......错误的。

如何在 Microsoft Excel 或 LibreOffice Calc 中计算由纬度和经度指定的两点之间的距离?我的公式有什么问题?

Afr*_*Afr 8

由于发现这里BrianAdkins,这个Excel公式来计算距离的两个纬度/经度点之间的工作对我来说无论是在LibreOffice的计算器和Microsoft Excel 2013:

=ACOS(COS(RADIANS(90-A1))*COS(RADIANS(90-A2))+SIN(RADIANS(90-A1))*SIN(RADIANS(90-A2))*COS(RADIANS(B1-B2)))*6371
Run Code Online (Sandbox Code Playgroud)

结果以公里为单位,对于小距离,我曾经*1000以米为单位显示距离。

  |        A        B      C
--|--------------------------
0 |      LAT      LON   DIST
1 | 52.39964 13.04729               
2 | 52.39985 13.04802   54.8
3 | 52.40116 13.04744  150.9
4 | 52.40147 13.04722   37.6
5 | 52.40163 13.04685   30.8
6 |      ...      ...    ...
Run Code Online (Sandbox Code Playgroud)

要以英里为单位显示距离,请替换*6371*3958