note

위도 경도 거리 계산 본문

JSP/기본

위도 경도 거리 계산

투한 2012. 4. 17. 16:56

검증되었습니다( 나로부터)

(C#소스는 있던데 java는 없어서 바꿔치기 하였슴)

표시 단위는 km입니다

public static double distance(double Lat1,double Long1, double Lat2, double Long2) {
		double dDistance = Double.MIN_VALUE;
		double dLat1InRad = Lat1 * (Math.PI / 180.0);
		double dLong1InRad = Long1 * (Math.PI / 180.0);
		double dLat2InRad = Lat2 * (Math.PI / 180.0);
		double dLong2InRad = Long2 * (Math.PI / 180.0);

		double dLongitude = dLong2InRad - dLong1InRad;
		double dLatitude = dLat2InRad - dLat1InRad;

		// Intermediate result a.
		double a = Math.pow(Math.sin(dLatitude / 2.0), 2.0) + 
				Math.cos(dLat1InRad) * Math.cos(dLat2InRad) * 
				Math.pow(Math.sin(dLongitude / 2.0), 2.0);

		// Intermediate result c (great circle distance in Radians).
		double c = 2.0 * Math.atan2(Math.sqrt(a), Math.sqrt(1.0 - a));

		// Distance.
		// const Double kEarthRadiusMiles = 3956.0;
		Double kEarthRadiusKms = 6376.5;
		dDistance = kEarthRadiusKms * c;

		return dDistance;
	}