我正在使用 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 的比例应该是正确的,不是吗?
谢谢,