반응형
1. 시험환경
˙ JDK 17.0.5
˙ IntelliJ
2. 목적
˙ JAVA 코드를 이용하여 WGS84(lat, lng) 형식의 지점 간 거리 측정 코드를 작성한다.
˙ 구글지도에서 두 지점 간 거리 계산 기능과 작성한 코드를 비교하여 유효성을 확인한다.
3. 적용
① double로 정의된 두 지점 간 직선 거리를 계산하여 반환하는 메소드
- lat1 : 지점1 위도
- lon1 : 지점1 경도
- lat2 : 지점2 위도
- lon2 : 지점2 경도
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public class Wgs84 {
public double distance(double lat1, double lon1, double lat2, double lon2) {
final int R = 6371; // Radius of the earth
Double latDistance = toRad(lat2 - lat1);
Double lonDistance = toRad(lon2 - lon1);
Double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) +
Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
Double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return R * c;
}
private static Double toRad(Double value) {
return value * Math.PI / 180;
}
}
|
cs |
② Main 메소드에서 distance()를 호출한다.
1
2
3
4
5
6
7
8
9
10
|
public class Main {
public static void main(String[] args) {
double lat1 = 37.4857, lng1 = 127.1216;
double lat2 = 37.5226, lng2 = 126.9051;
Wgs84 wgs84 = new Wgs84();
double dist = wgs84.distance(lat1, lng1, lat2, lng2);
System.out.println(String.format("Distance = %f", dist));
}
}
|
cs |
③ 소스코드 다운로드
4. 결과
˙ 입력한 두 지점 간 거리는 구글지도에서 19.54km
˙ 콘솔 로그 확인 결과, 구글지도 수동입력 오차를 감안하면 쓸만한 코드임을 확인할 수 있다.
※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※
반응형
'스프링 프레임워크' 카테고리의 다른 글
springboot, mybatis, MySQL 연동 프로젝트 생성, 설정 및 예제 코드 (0) | 2023.03.09 |
---|---|
Springboot 최초 시작 시 IntelliJ 에러 (finished with non-zero exit value 1) (0) | 2023.03.09 |
[JAVA] 하위폴더 포함 폴더 내 파일 삭제 (1) | 2022.12.10 |
[SpringBoot] application.properties 설정 (mariadb) (0) | 2022.10.22 |
[JAVA] 경로내에 파일 목록을 추출하여 리스트로 저장 (0) | 2022.10.21 |