distanceTo method

num distanceTo(
  1. GlobalPoint P
)

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;
  }
}