double CalcDistance(double x1Long, double x2Long, double y1Lat, double y2Lat)
{
float pi = 3.1415926535898;
float earthR = 6378137;
double a ;
double b ;
double s ;
double radLat1 ;
double radLat2 ;
radLat1 = y1Lat * pi / 180.0;
radLat2 = y2Lat * pi / 180.0;
a = radLat1 - radLat2;
b = x1Long * pi / 180.0 - x2Long * pi / 180.0;
s = 2 * asin(sqrt(pow(sin(a / 2), 2) +
cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2)));
s = s * earthR;
return s;
}