Distance between coordinates in Java, Haversine formula
class GeoPoint {
private static final double EARTH_RADIUS = 6372.797560856;
double lat;
double lon;
public GeoPoint(double lat, double lon) {
this.lat = lat;
this.lon = lon;
}
public double distance(GeoPoint other) {
double lat1 = Math.toRadians(this.lat);
double lon1 = Math.toRadians(this.lon);
double lat2 = Math.toRadians(other.lat);
double lon2 = Math.toRadians(other.lon);
double dlon = lon2 - lon1;
double dlat = lat2 - lat1;
double a = Math.pow(Math.sin(dlat / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(dlon / 2), 2);
return 2 * EARTH_RADIUS * Math.asin(Math.sqrt(a));
}
}
Written by Bruno Candido Volpato da Cunha
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Java
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#