위도 경도를 이용한 두 위치간 거리 구하기
두 지점의 위도(latitude)와 경도(longitude)를 알고 있을 경우,
직경거리를 구항 경우가 발생하였다.
대략의 구조를 기술한다.
1. 한글 주소를 이용 위도와 경도를 구한다.
- 네이버 오픈 api 를 이용, 개발 키를 발급 받아서 처리가능하다
2. 주소의 위도와 경도를 저장한다.
3. 비교할 주소의 위도와 경도를 이용 아래 쿼리를 수행한다.
위치1(lat1,lng1)과 위치2(lat2, lng2)의 거리가 5km 이하인 목록을 20개 검색
SELECT id, ( 6371 * acos( cos( radians(lat1) ) * cos( radians( lat2 ) )
* cos( radians( lng2 ) - radians(lng1) )
+ sin( radians(lat1) ) * sin( radians( lat2 ) ) ) ) AS distance
FROM markers
HAVING distance < 5
ORDER BY distance
LIMIT 0 , 20;
* 상수
3959 = 마일 단위
6371 = 킬로미터 단위
4. 조인을 이용, 반경 거리와 항목명등을 목록에 표시
|