package com.njtransit.utils;
public class Distance {
private static final int R = 6371000;
/**
*
* @param lat1
* @param lon1
* @param lat2
* @param lon2
* @return distance between points in meters
*/
public static double greatCircle(double lat1, double lon1, double lat2, double lon2) {
double dLat = Math.toRadians(lat2-lat1);
double dLon = Math.toRadians(lon2-lon1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return R * c;
}
}