티스토리 뷰

위경도 좌표 2개의 좌표간에 거리 차이를 구하는 코드 입니다.

거리를 구할 2개의 좌표를 넘겨 주면 좌표간에 거리가 리턴 되는 코드 입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
   * 두 좌표간 거리 계산
   * @param lat1
   * @param lon1
   * @param lat2
   * @param lon2
   * @return
   */
  public static String calcDistance(double lat1, double lon1, double lat2, double lon2){
      double EARTH_R, Rad, radLat1, radLat2, radDist; 
      double distance, ret;
         EARTH_R = 6371000.0;
         Rad = Math.PI/180;
         radLat1 = Rad * lat1;
         radLat2 = Rad * lat2;
         radDist = Rad * (lon1 - lon2);
         
         distance = Math.sin(radLat1) * Math.sin(radLat2);
         distance = distance + Math.cos(radLat1) * Math.cos(radLat2) * Math.cos(radDist);
         ret = EARTH_R * Math.acos(distance);
         double rslt = Math.round(Math.round(ret) / 1000);
         String result = rslt + " km";
         if(rslt == 0) result = Math.round(ret) +" m";
         
         return result;
     }
cs
댓글