( 이미지 출처 : https://apis.map.kakao.com/ )
위도(latitude) / 경도(longitude)를 이용해서 실제 거리를 구하는 공식
function getDistance(lat1, lon1, lat2, lon2) { if ((lat1 == lat2) && (lon1 == lon2)) return 0; var radLat1 = Math.PI * lat1 / 180; var radLat2 = Math.PI * lat2 / 180; var theta = lon1 - lon2; var radTheta = Math.PI * theta / 180; var dist = Math.sin(radLat1) * Math.sin(radLat2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.cos(radTheta); if (dist > 1) dist = 1; dist = Math.acos(dist); dist = dist * 180 / Math.PI; dist = dist * 60 * 1.1515 * 1.609344 * 1000; if (dist < 100) dist = Math.round(dist / 10) * 10; else dist = Math.round(dist / 100) * 100; return dist; }
- 필요한 변수는 2 쌍의 위도(latitude) / 경도(longitude) 값
- dist가 2,000 --> 2km를 의미
[ 이렇게 사용했다 ]
1. Android / IOS에서 카카오 지도 API를 통해 현재 위치를
위도 / 경도 값으로 받아와서 user Table에 저장
2. 사용자는 현재 위치로 부터 2km이내에 있는 post(게시글)을 출력