MSSQL

특정 위치(위도, 경도)에서 반경 안에 드는 장소 SQL로 조회하기

오늘저녁은김치볶음밥 2020. 12. 9. 13:54

특정 위치(위도, 경도)에서 반경 안에 드는 장소 SQL로 조회하기

(6371 * acos( cos( radians( 현재위치위도 ) ) * cos( radians( 위도) ) * cos( radians( 경도) - radians(현재위치경도)) 

+ sin( radians(현재위치위도) ) * sin( radians(위도) ) ) ) AS distance

 

해당 순으로 입력한 뒤, 계산을 하면 현재 위치에서 각각 원하는 장소가 얼마나 떨어져 있는지 계산이 된다.

앞에 6371은 지구의 반지름 값으로 기본적으로 들어가는 값이다.

거리는 km로 계산이 되기 때문에 만약 3km 근처에 있는 장소들만 표시해주고 싶다면 해당식의 값이 3보다 작은것들만 보여주면 된다. 

 

 

Example SQL

SELECT count(*)

FROM (

SELECT ( 6371 * acos( cos( radians( 37.4097995 ) ) * cos( radians( lat) ) * cos( radians( lot ) - radians(127.128697) ) + sin( radians(37.4097995) ) * sin( radians(lat) ) ) ) AS distance

FROM cf_location

) DATA

WHERE DATA.distance < 3



출처: https://devzeroty.tistory.com/entry/특정-위치위도-경도에서-반경-안에-드는-장소-SQL로-조회하기 [Dev Story..]