Java는 두 위도와 경도 지점 사이의 거리를 계산하고 코드를 직접 업로드하십시오.
코드 사본은 다음과 같습니다.
패키지 com.jttx.poi.utils;
import com.jttx.poi.entity.point;
/**
* Louis가 2014/9/2에 제작했습니다.
*/
공공 수업 geoutils {
/**
* 두 위도와 경도 지점 사이의 거리 계산 (단위 : 미터)
* @param lng1 경도
* @param lat1 위도
* @param lng2
* @param lat2
* @반품
*/
공개 정적 이중 GetDistance (이중 LNG1, 이중 LAT1, 이중 LNG2, 이중 LAT2) {
Double Radlat1 = Math.Toradians (lat1);
Double Radlat2 = Math.Toradians (lat2);
double a = radlat1 -radlat2;
Double B = Math.Toradians (LNG1) -Math.Toradians (LNG2);
Double S = 2 * Math.Asin (Math.sqrt (Math.Pow (Math.Sin (A / 2), 2) + Math.Cos (Radlat1)
* math.cos (radlat2) * math.pow (math.sin (b / 2), 2)));
s = s * 6378137.0; // WGS84 표준 참조 타원체에서 지구 길이의 반경을 가져옵니다 (단위 : m)
s = math.round (s * 10000) / 10000;
반환 s;
}
/**
* TP 값을 계산하십시오
* @param curpoint current point
* @param 관련점 오프셋 포인트
* @param isgeography 지리적 좌표가 False인지 여부는 2D 좌표입니다.
* @return tp 값
*/
public static double getDirangle (Point Curpoint, Point Related Point, 부울 isgeography) {
이중 결과 = 0;
if (isgeography) {
double y2 = math.toradians (relatedpoint.getlat ());
double y1 = math.toradians (curpoint.getlat ());
Double Alpha = math.atan2 (restomepoint.getlat () - curpoint.getlat (), (resentpoint.getlng () - curpoint.getlng ()) * math.cos ((y2 -y1)/ 2)); // latitude COS (Y2-Y1/2)를 곱한 방향
이중 델타 = 알파 <0? (2*math.pi+alpha) : 알파;
결과 = math.todegrees (델타);
}또 다른 {
Double Alpha = math.atan2 (relatePoint.getLat () - curpoint.getLat (), relatePoint.getLng () - curpoint.getlng ());
이중 델타 = 알파 <0? (2*math.pi+alpha) : 알파;
결과 = math.todegrees (델타);
}
반환 결과;
}
public static void main (String [] args) {
System.out.println (getDistance (121.446014, 31.215937, 121.446028464238, 31.2158502442799);
}
}
위의 것은이 기사에 관한 모든 것입니다. 나는 당신이 그것을 좋아하기를 바랍니다.