본문 바로가기
ZB 백엔드 스쿨/과제

위, 경도 상의 거리 구하기

by son_i 2023. 9. 5.
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

 

해당 블로그 참

https://ccusean.tistory.com/entry/Javascript-%EA%B2%BD%EB%8F%84-%EC%9C%84%EB%8F%84%EB%A1%9C-%EB%91%90-%EC%A7%80%EC%A0%90%EA%B0%84%EC%9D%98-%EA%B1%B0%EB%A6%AC-%EA%B3%84%EC%82%B0%ED%95%98%EA%B8%B0

 

경도, 위도로 두 지점간의 거리 계산하기

지구는 구형태를 띄고 있기 때문에 위치마다 경도 1º, 위도 1º의 거리는 서로 다릅니다. 이를 계산하기 위해서 두 지점의 경도와 위도를 가지고 거리를 계산하는 방법은 "하버사인 공식(Haversine f

ccusean.tistory.com


값들을 따로 넣어서 테스트하면 이렇게 잘 나오는데

db에서 x, y  값 뽑아서 거리 계산 후 저장하면 이렇게 나온다.

뽑아오는 게 잘못됐을까 ?

 

앗....  db에 x, y 좌표값이 반대로 들어가있다 ㅠㅠㅠ 엉엉 다시 해야돼 ㅠㅠㅠ