개발자의 끄적끄적

[sql] 두 좌표간의 거리 계산식 본문

개발/sql

[sql] 두 좌표간의 거리 계산식

효벨 2020. 10. 21. 03:00
728x90
반응형

[sql] 두 좌표간의 거리 계산식

 

SELECT *,
(6371*acos(cos(radians(위도1))*cos(radians(위도2))*cos(radians(경도2)-radians(경도1))+sin(radians(위도1))*sin(radians(위도2))))
AS dist
FROM 테이블명
HAVING dist <= 200/1000 

위처럼 위도와 경도를 알고있는 2지점의 데이터를 가지고

 

쿼리에 맞게 대입하면 거리가 나옵니다.

 

아래 적혀있는 having 절은 거리 계산식이 Km 단위로 나오기때문에 200m 이내에 들어있는 거리만 계산하려고 넣어둔 부분이구요!

 

여기서 주의하실점은

 

정확히 원인은 잘은 모르겠으나,

 

having dist <= 200/1000 하면 나오기는 합니다만, 간혹 데이터가 정상적으로 나오지 않더라구요.

 

그래서,

 

having dist <= 0.2 이렇게 하니 너무 정확하게 잘나옵니다.

 

having 절에 들어갈 거리를 미리 계산해서 소수점으로 대입을 하는 것도 좋은 방법일듯 합니다.

 

참고들하세요!

반응형
Comments