NodeJS - 거리구하기(위도 / 경도)

김정욱·2020년 12월 12일
6

NodeJS

목록 보기
18/22
post-thumbnail

( 이미지 출처 : https://apis.map.kakao.com/ )

거리구하는 공식 (Javascript)

위도(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(게시글)을 출력

profile
Developer & PhotoGrapher

0개의 댓글