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
해당 블로그 참
값들을 따로 넣어서 테스트하면 이렇게 잘 나오는데
db에서 x, y 값 뽑아서 거리 계산 후 저장하면 이렇게 나온다.
뽑아오는 게 잘못됐을까 ?
앗.... db에 x, y 좌표값이 반대로 들어가있다 ㅠㅠㅠ 엉엉 다시 해야돼 ㅠㅠㅠ
728x90
'ZB 백엔드 스쿨 > 과제' 카테고리의 다른 글
버튼에 클릭이벤트 생성 (JavaScript) (0) | 2023.09.05 |
---|---|
SQLite 설치하고 DataGrip에 연결 (테이블 생성 완료) (0) | 2023.09.02 |
서울시 공공와이파이 정보 OPEN API 받아오기 - (파싱까지 완료) (0) | 2023.09.02 |
Mission1 깜짝과제 03.html 페이징 처리 (0) | 2023.08.12 |
Mission1 깜짝과제 02.조건에 맞는 프로그램 작성하기 (0) | 2023.08.12 |