distanceTo method
Implementation
num distanceTo(GlobalPoint P) {
if (this.isValid() && P.isValid()) {
num lat1 = this.latitude * 3.141592653589793 / 180.0;
num lat2 = P.latitude * 3.141592653589793 / 180.0;
num dlat = (this.latitude - P.latitude) * 3.141592653589793 / 180.0;
num dlon = (this.longitude - P.longitude) * 3.141592653589793 / 180.0;
num a = sin(dlat / 2.0) * sin(dlat / 2.0) +
sin(dlon / 2.0) * sin(dlon / 2.0) * cos(lat1) * cos(lat2);
return 2.0 * atan2(sqrt(a), sqrt(1.0 - a)) * 6378137.0;
} else {
return 0.0 / 0.0;
}
}