您的位置:首页 > 其它

已知经纬度求地球上两地点之间球面距离

2016-04-12 09:49 375 查看
C++代码如下:

//根据地球两点经纬度求两点间弧长
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;

const double pi = acos(-1.0);
const double EARTH_RADIUS = 6371.004;

double rad(double d)
{
return d * pi / 180.0;
}

double GetDistance(double Lat_1, double Lng_1, double Lat_2, double Lng_2)
{
double radLat_1 = rad(Lat_1);
double radLat_2 = rad(Lat_2);
double a = radLat_1 - radLat_2;
double b = rad(Lng_1) - rad(Lng_2);
double s = 2 * asin(sqrt(pow(sin(a / 2), 2) + cos(radLat_1) * cos(radLat_2) * pow(sin(b / 2), 2)));

s = s * EARTH_RADIUS;
s = round(s * 10000) / 10000;

return s;
}

int main()
{
//freopen("a.in", "r", stdin);
//freopen("a.out","w",stdout);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: