Untitled
unknown
c_cpp
3 years ago
1.1 kB
9
Indexable
double distance(double lat1, double lon1, double lat2, double lon2) {
double theta, dist;
if ((lat1 == lat2) && (lon1 == lon2)) {
return 0;
}
else {
theta = lon1 - lon2;
dist = sin(deg2rad(lat1)) * sin(deg2rad(lat2)) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta));
dist = acos(dist); //returns the arc cosine (inverse cosine) of a number in radians.
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
dist = dist * 1.609344;
}
return dist;
}
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*:: This function converts decimal degrees to radians :*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
double deg2rad(double deg) {
return (deg * pi / 180);
}
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*:: This function converts radians to decimal degrees :*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
double rad2deg(double rad) {
return (rad * 180 / pi);
}Editor is loading...