これは、ここで指定したJavaScriptのソリューションから移植されたJavaのバージョンである: Using the Haversine Formula in Javascriptによってtalkol
// this was a pojo class we used internally...
public class GisPostalCode {
private String country;
private String postalCode;
private double latitude;
private double longitude;
// getters/setters, etc.
}
public static double distanceBetweenCoordinatesInMiles2(GisPostalCode c1, GisPostalCode c2) {
double lat2 = c2.getLatitude();
double lon2 = c2.getLongitude();
double lat1 = c1.getLatitude();
double lon1 = c1.getLongitude();
double R = 6371; // km
double x1 = lat2 - lat1;
double dLat = x1 * Math.PI/180;
double x2 = lon2 - lon1;
double dLon = x2 * Math.PI/180;
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1*Math.PI/180) * Math.cos(lat2*Math.PI/180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double d = R * c;
// convert to miles
return d/1.60934;
}
http://www.movable-type.co.uk/scripts/latlong.html –
この宿題ですか? –
私は緯度と経度のポイントがなく、最初の方位と距離のみです。 –