본문 바로가기

정보

[MySQL] 위도 경도로 해당범위의 정보 가져오기

SELECT 가져올컬럼,
 
    (6371*acos(cos(radians(nowlatitude))*cos(radians(setlatitude))*cos(radians(sethardness)
 
    -radians(nowhardness))+sin(radians(nowlatitude))*sin(radians(setlatitude))))
 
    AS distance
 
FROM 대상테이블
 
HAVING distance <= 거리
 
ORDER BY distance 


nowlatitude 는 위도 
nowhardness는 경도


selatitude 는 db의 위도 컬럼

sethardness는 db의 경도 컬럼을 삽입하면된다.


나의 경우 다음과 같이 사용했다.

$lat,$lng 으로 데이터를 받고 해당하는 정보들을 return해주었다.

SELECT *,

(6371*acos(cos(radians($lat))*cos(radians(lat))*cos(radians(lng)

-radians($lng))+sin(radians($lat))*sin(radians(lat))))

AS distance

FROM v2_care

HAVING distance <= 3

ORDER BY distance

LIMIT 0,100


'정보' 카테고리의 다른 글

postgresql 명령어 모음  (0) 2019.01.12
cap 이론  (1) 2018.11.19
storage engine 이란?  (0) 2018.11.07
하이퍼링크 클릭시 크롬으로 여는 방법  (2) 2018.10.30
정형 데이터? 반정형 데이터? 비정형 데이터?  (0) 2018.10.23