// calculate the distance between two coordinates
Double Distancewithcoord (double lon1,double lat1,double lon2,double lat2)
{
Double er = 6378137;
Double RADLAT1 = pi*lat1/180.0f;
Double radlat2 = pi*lat2/180.0f;
Double radlong1 = pi*lon1/180.0f;
Double radlong2 = pi*lon2/180.0f;
if (RADLAT1 < 0) RADLAT1 = pi/2 + fabs (RADLAT1);//South
if (radlat1 > 0) radlat1 = PI/2-Fabs (RADLAT1);//North
if (radlong1 < 0) radlong1 = pi*2-fabs (radlong1);//west
if (Radlat2 < 0) Radlat2 = pi/2 + fabs (RADLAT2);//South
if (Radlat2 > 0) radlat2 = PI/2-Fabs (RADLAT2);//North
if (Radlong2 < 0) radlong2 = pi*2-fabs (radlong2);//West
Double x1 = er * cos (radlong1) * sin (RADLAT1);
Double y1 = er * sin (radlong1) * sin (RADLAT1);
Double z1 = er * cos (RADLAT1);
Double x2 = er * cos (radlong2) * sin (RADLAT2);
Double y2 = er * sin (radlong2) * sin (RADLAT2);
Double z2 = er * cos (RADLAT2);
Double d = sqrt ((x1-x2) * (X1-X2) + (y1-y2) * (y1-y2) + (Z1-Z2) * (Z1-Z2));
Double theta = ACOs ((er*er+er*er-d*d)/(2*er*er));
Double dist = theta*er;
return dist;
}
This article is from the "11204872" blog, please be sure to keep this source http://11214872.blog.51cto.com/11204872/1754486
Distance between IOS 2 coordinates