ZB 백엔드 스쿨/과제
위, 경도 상의 거리 구하기
son_i
2023. 9. 5. 22:06
728x90
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class APIService {
public static void main(String[] args) {
calDist(37.5544069,126.8998666);
}
public static void calDist(double x, double y) {
System.out.println("실행은 되니 ?");
double x_value = 37.552788;
double y_value = 126.89939;
double dist = distance(x, y, x_value, y_value);
System.out.println(dist);
}
public static double distance(double lat1,double lon1,double lat2,double lon2) {
double R = 6371; // 지구 반지름 (단위: km)
double dLat = deg2rad(lat2 - lat1);
double dLon = deg2rad(lon2 - lon1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double distance = R * c; // 두 지점 간의 거리 (단위: km)
return distance;
}
public static double deg2rad(double deg) {
return deg * (Math.PI/180);
}
}
결과 잘 나오고 이거를 5번째 자리에서 반올림해서 db에 저장해야함 !
0.18485134872670383
해당 블로그 참
경도, 위도로 두 지점간의 거리 계산하기
지구는 구형태를 띄고 있기 때문에 위치마다 경도 1º, 위도 1º의 거리는 서로 다릅니다. 이를 계산하기 위해서 두 지점의 경도와 위도를 가지고 거리를 계산하는 방법은 "하버사인 공식(Haversine f
ccusean.tistory.com
값들을 따로 넣어서 테스트하면 이렇게 잘 나오는데
db에서 x, y 값 뽑아서 거리 계산 후 저장하면 이렇게 나온다.
뽑아오는 게 잘못됐을까 ?
앗.... db에 x, y 좌표값이 반대로 들어가있다 ㅠㅠㅠ 엉엉 다시 해야돼 ㅠㅠㅠ
728x90