개요
현재 위치 기준 가까운 순서대로 나열하기 위해 위도, 경도 간 실제 거리를 구해야 했습니다.
저는 clean_h님 블로그 글을 참고하여 아래 코드를 작성하였고 자세한 설명은 아래 블로그를 방문해서 봐주시면 될 것 같습니다.
자바(intelij) / 좌표(위도,경도)로 실제 거리 구하기
위도, 경도 지구는 위도와 경도로 나타낼 수 있다. 가로 좌표가 위도(latitude), 세로 좌표가 경도(longitude)이다. 대한민국 한반도의 위도는 북위33(마라도)~ 북위43(온성군), 경도는 동경124(용천군 비
se-jung-h.tistory.com
코드
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// km 기준 | |
private Double getDistance(Double lat, Double lnt, Double lat2, Double lnt2) { | |
double theta = lnt - lnt2; | |
double dist = Math.sin(deg2rad(lat))* Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat))*Math.cos(deg2rad(lat2))*Math.cos(deg2rad(theta)); | |
dist = Math.acos(dist); | |
dist = rad2deg(dist); | |
dist = dist * 60*1.1515*1609.344; | |
return dist / 1000; | |
} | |
//10진수를 radian(라디안)으로 변환 | |
private static double deg2rad(double deg){ | |
return (deg * Math.PI/180.0); | |
} | |
//radian(라디안)을 10진수로 변환 | |
private static double rad2deg(double rad){ | |
return (rad * 180 / Math.PI); | |
} |
참고
https://ko.wikipedia.org/wiki/%EA%B2%BD%EB%8F%84
경도 - 위키백과, 우리 모두의 백과사전
ko.wikipedia.org
반응형
'[DEV] 기록' 카테고리의 다른 글
[Java] "No suitable driver found for jdbc:sqlite" (1) | 2022.07.10 |
---|---|
[Java] "Comparison method violates its general contract!" (0) | 2022.07.10 |
[MacOS] 원하는 쉘로 변경하는 방법 (0) | 2022.06.07 |
[Maven + Tomcat] 메이븐 빌드 후 톰캣에 war 배포하는 방법 (0) | 2022.06.02 |
[linux] linux 명령어 정리 (2) | 2022.06.01 |