Oracle 오라클 두 좌표 사이의 거리 구하기 WGS84
특정 테이블에 좌표값 컬럼이 있고(LOCATION_DATA_Y, LOCATION_DATA_X)
파라메터로 좌표값(Y : 33.504274, X : 126.529182)을 받아 거리를 구하고자 할 경우
2km 정도의 오차 발생의 경우(0.019 - 0.022)
[QUERY]
SELECT DISTANCE_WGS84(33.504274, 126.529182, LOCATION_DATA_Y, LOCATION_DATA_X) as DISTANCE
FROM COL_INCIDENT_LOG
WHERE (LOCATION_DATA_Y BETWEEN 33.504274-0.019 AND 33.504274+0.019)
AND (LOCATION_DATA_X BETWEEN 126.529182-0.022 AND 126.529182+0.022)
[DISTANCE_WGS84 FUNCTION]
CREATE OR REPLACE FUNCTION DISTANCE_WGS84( H_LAT in number, H_LNG in number, T_LAT in number, T_LNG in number)
RETURN NUMBER DETERMINISTIC
IS
BEGIN
RETURN ( 6371.0 * acos(
cos( radians( H_LAT ) )*cos( radians( T_LAT /* 위도 */ ) )
*cos( radians( T_LNG /* 경도 */ )-radians( H_LNG ) )
+
sin( radians( H_LAT ) )*sin( radians( T_LAT /* 위도 */ ) )
));
end DISTANCE_WGS84;
'Database > SQL' 카테고리의 다른 글
Oracle IN, NOT IN 문 알짜만 빼먹기 (1) | 2019.07.17 |
---|---|
oracle 오라클 과거 데이터 조회, 복구 AS OF 몇분전, 몇시간전 (0) | 2018.01.30 |
오라클 WM_CONCAT 하나의 컬럼으로 가져오기, 중복제거 (0) | 2017.10.25 |
ORA-28001 , ORA-28002 비밀번호 만기관련 오라클 해결방법. (0) | 2017.06.14 |
엑셀 Excel ODBC 연동시 case when 방법 (0) | 2016.09.09 |
댓글