[javascript] 거리 계산

두 지점 간의 거리를 계산하는 것은 지도 응용 프로그램 및 위치 기반 서비스 개발에 유용합니다. JavaScript를 사용하여 위도와 경도를 기반으로 두 지점 간의 거리를 계산하는 방법을 알아보겠습니다.

Haversine 공식

가장 널리 사용되는 거리 계산 알고리즘 중 하나는 Haversine 공식입니다. 이 공식을 사용하여 두 지점 간의 직선 거리(대원의 길이)를 계산할 수 있습니다.

function calculateDistance(lat1, lon1, lat2, lon2) {
  const earthRadius = 6371; // 지구의 반지름 (단위: km)

  const dLat = (lat2 - lat1) * (Math.PI / 180);
  const dLon = (lon2 - lon1) * (Math.PI / 180);

  const a =
    Math.sin(dLat / 2) * Math.sin(dLat / 2) +
    Math.cos(lat1 * (Math.PI / 180)) * Math.cos(lat2 * (Math.PI / 180)) *
    Math.sin(dLon / 2) * Math.sin(dLon / 2);
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

  const distance = earthRadius * c; // 두 지점 간의 거리 (단위: km)
  return distance;
}

위의 코드는 위도와 경도가 주어졌을 때 Haversine 공식을 사용하여 두 지점 간의 거리를 계산하는 JavaScript 함수를 보여줍니다.

사용 예

const distance = calculateDistance(37.7749, -122.4194, 34.0522, -118.2437);
console.log(`두 지점 사이의 거리: ${distance}km`);

위의 예제는 샌프란시스코와 로스앤젤레스의 위도와 경도를 사용하여 두 지점 간의 거리를 계산합니다.

결론

JavaScript를 사용하여 위도와 경도를 기반으로 두 지점 간의 거리를 계산하는 방법을 살펴보았습니다. Haversine 공식은 지도 응용 프로그램 및 위치 기반 서비스에서 널리 사용되므로 개발자들에게 유용한 정보일 것입니다.

참고자료:

이 블로그 글에서는 JavaScript를 사용한 거리 계산에 대해 자세히 설명했습니다. 만약 추가적인 도움이 필요하다면, 언제든지 물어보세요.