我的程序計算以千米爲單位的兩點之間的距離,給出兩個緯度和經度值。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