MYSQL 거리순 또는 지정된 거리 내의 장소 불러오기 > IT 기술백서

IT 기술백서

직접 알아내거나 검색하기 귀찮아서 모아 둔 것

DB | MYSQL 거리순 또는 지정된 거리 내의 장소 불러오기

본문

지구 평균 둘레 = 6371000

6371000 * PI / 180 =111194.9266

※ 적도와 극지방의 둘레가 다르기 때문에 정밀한 거리용으로는 적합하지 않다.

 


ST_Distance() 의 결과값을 111194.9266 으로 곱하면 meter 가 나온다.

 

 

예제 1) 현재위치로부터 100미터 이내의 장소(places 테이블) 데이터만 불러오기

※ 4326 은 좌표계 종류중의 하나이다.

[code]

SELECT * FROM places WHERE

ST_Distance(GeomFromText( 'POINT(경도값 위도값)', 4326 ), GeomFromText( CONCAT('POINT(', lng, ' ', lat, ')'), 4326 )) * 111195 < 100

[/code]

 

예제 2) 가까운 순서대로 10개 불러오기

[code]

SELECT * FROM places WHERE

ST_Distance(GeomFromText( 'POINT(경도값 위도값)', 4326 ), GeomFromText( CONCAT('POINT(', lng, ' ', lat, ')'), 4326 )) * 111195 < 100 

order by ST_Distance(GeomFromText( 'POINT(경도값 위도값)', 4326 ), GeomFromText( CONCAT('POINT(', lng, ' ', lat, ')'), 4326 )) asc limit 10

[/code]

댓글 0개

등록된 댓글이 없습니다.

Menu