0

我正在使用 GeographicLib 来测试两个坐标之间的距离。我得到的结果略有错误(大约 11m),我想了解原因。

不同的结果:

  • 地理库:距离 41.721m
  • 在线距离计算器:40m(不在乎)
  • Openstreetmap,使用他们的比例尺和尺子:30m(在此处查找第一个点第二个点)。我测量 11 毫米为 10m。我得到 33 毫米,所以 (33/11) * 10 = 3*10 = 30。

要点:

  • 双 lo1 = 2.3439925,la1 = 48.8516987;
  • 双 lo2 = 2.3443573,la2 = 48.8516029;

这是我使用的代码:

#include <iostream>
#include <GeographicLib/Geodesic.hpp>
 
using namespace std;
using namespace GeographicLib;
 
int main() {
  const Geodesic& geod = Geodesic::WGS84();

  double
    lon1 = 2.3439925, lat1 = 48.8516987, 
    lon2 = 2.3443573, lat2 = 48.8516029;  
  double s12;
  geod.Inverse(lat1, lon1, lat2, lon2, s12);
  cout << s12 << " m\n";
}

差异大到让我想知道:我怎样才能提高我的计算能力?

我怀疑 Openstreetmap 的比例应该是正确的,不是吗?

谢谢,

4

0 回答 0