distance static method

double distance(
  1. ILatLong p1,
  2. ILatLong p2
)

Calculates distance in meters with Haversine algorithm.

Accuracy can be out by 0.3% More on Wikipedia @return the distance in meters

Implementation

//@override
static double distance(final ILatLong p1, final ILatLong p2) {
  final sinDLat = sin((degToRadian(p2.latitude) - degToRadian(p1.latitude)) / 2);
  final sinDLng = sin((degToRadian(p2.longitude) - degToRadian(p1.longitude)) / 2);

  // Sides
  final a = sinDLat * sinDLat + sinDLng * sinDLng * cos(degToRadian(p1.latitude)) * cos(degToRadian(p2.latitude));
  final c = 2 * atan2(sqrt(a), sqrt(1 - a));

  return EQUATORIAL_RADIUS * c;
}