计算两个GPS坐标的距离 - jues
gentoo 编写 ebuild
android 终端上使用gcc

计算两个GPS坐标的距离

jues posted @ 2014年4月22日 13:58 in 笔记(转载) , 2453 阅读
#include <math.h>

#ifdef WIN32
#define round(x) floor(x+0.5) 
#endif /*WIN32*/

#define PI 3.1415926535897
static const double EARTH_RADIUS = 6378.137;

//////////////////////////////////////////////////////////////////////////

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

double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
	double radLat1 = (double)rad(lat1);
	double radLat2 = rad(lat2);
	double a = radLat1 - radLat2;
	double b = rad(lng1) - rad(lng2);
	double s = 2 * asin(sqrt(pow(sin(a/2),2) +
		cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
	//
	s = s * EARTH_RADIUS;
	s = round(s * 10000) / 10000;
	return s;
}

摘于:www.cnblogs.com/xuanfeng/archive/2010/04/20/1716431.html 

#5楼 2013-07-25 23:26 by 国之将亡五毛成灾  

我只是摘过来写为C语言。

Avatar_small
jues 说:
2014年4月22日 14:07

csdn中代码下载,VC6开发环境

download.csdn.net/detail/juesystem/7232821


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter