Code如下:
參數含義:
lat1:A點的緯度值
lng1:A點的經度值
lat2:B點的緯度值
lng2:B點的經度值
#define _USE_MATH_DEFINES
#define EARTH_RADIUS 6378137.0 /* 地球半徑 單位:米 */
#include <math.h>
double get_great_circle_distance(double lat1, double lng1, double lat2, double lng2)
{
double radlat1 = lat1 * M_PI / 180.0;
double radlat2 = lat2 * M_PI / 180.0;
double radlng1 = lng1 * M_PI / 180.0;
double radlng2 = lng2 * M_PI / 180.0;
double a = radlat1 - radlat2;
double b = radlng1 - radlng2;
double s = 2 * asin(sqrt( pow(sin(a / 2), 2) + cos(radlat1) * cos(radlat2) * pow(sin(b / 2), 2) ));
s = s * EARTH_RADIUS;
s = floor(s * 10000 + 0.5) / 10000.0;
return s;
}