개발/MySQL

[MySQL] - 위도, 경도를 통해 특정 거리안에 위치 구하기

yhyuk 2021. 10. 15. 23:45
728x90
반응형

구글 지도를 열고 한 지점을 선택하면 해당 위치의 '위도'와 '경도'가 나온다. 이처럼 기준 위도, 경도와 특정 위치의 위도, 경도를 가지고 기준점에서의 거리를 mysql을 통해 구할 수 있다.

현재위치

  • 위도 : mylat
  • 경도 : mylng

지정 위치

  • 위도 : pointlat
  • 경도 : pointlng
SELECT
    (
    	6371*acos(cos(radians(mylat))*cos(radians(pointlat))*cos(radians(pointlng)
    	-radians(mylng))+sin(radians(mylat))*sin(radians(pointlat)))
    ) AS distance
FROM 테이블
HAVING distance <= 거리
ORDER BY distance ASC

현재 위치에 근접한 지정 위치를 가까운 순서대로 가져오는 쿼리이다.

→ 현재 위/경도를 통해 mysql에서 많이 사용하는 일종의 공식이다

728x90
반응형