我的程序计算以千米为单位的两点之间的距离,给出两个纬度和经度值。C++ - 纬度和经度距离计算器
#include<iostream>
#include <cmath>
#define pi 3.14159265358979323846
using namespace std;
double calculateDistance(double lat1, double long1, double lat2, double long2) {
double dist;
dist = sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(long1 - long2);
dist = acos(dist);
dist = (6371 * pi * dist)/180;
return dist;
}
int main() {
cout << calculateDistance(51.752021, -1.257726, 51.507351, -0.127758);
return 0;
}
这就是我想实现的公式:
,我使用来测试我的输出,http://www.movable-type.co.uk/scripts/latlong.html,其中列明了答案应该是82.60公里计算器。 (我越来越33.6227公里)
你应该先度转换为弧度。 – 2014-11-25 12:28:26
“其中d用度表示” – Cristy 2014-11-25 12:30:13
可能的重复[如何计算两个纬度 - 经度点之间的距离?](http://stackoverflow.com/questions/27928/how-do-i-calculate-distance-在两个纬度经度点之间) – Cristy 2014-11-25 12:32:59