>백엔드 개발 >PHP 튜토리얼 >Haversine 공식을 사용하여 MySQL에서 Great Circle Distance를 어떻게 계산할 수 있습니까?

Haversine 공식을 사용하여 MySQL에서 Great Circle Distance를 어떻게 계산할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-27 09:27:17303검색

How Can I Calculate Great Circle Distance in MySQL Using the Haversine Formula?

MySQL: Haversine 공식을 사용한 대권 거리 계산

소개

사이의 거리 계산 구의 두 지리적 좌표는 지리공간 애플리케이션에서 일반적인 작업입니다. 이를 위해 널리 사용되는 접근 방식 중 하나는 두 점 사이의 대원 거리에 대한 정확한 결과를 제공하는 Haversine 공식입니다.

MySQL에서 Haversine 공식 사용

MySQL에서 Haversine 공식을 구현하면 다음 단계를 활용할 수 있습니다.

  1. 좌표 값(위도)을 변환합니다. 및 경도)를 RADIANS() 함수를 사용하여 라디안으로 변환합니다.
  2. SUBTRACT() 또는 ABS() 함수를 사용하여 좌표 간의 차이를 계산합니다.
  3. 2단계에서 얻은 차이를 제곱하고 그런 다음 이들을 더합니다.
  4. 3단계의 합계에 지구의 반경(6371km 또는 3959 마일).
  5. 마지막으로 SQRT() 함수를 사용하여 4단계 결과의 제곱근을 계산합니다.

SQL 쿼리 예

다음은 두 개의 대권 거리를 계산하기 위해 Haversine 공식을 구현하는 SQL 쿼리의 예입니다. 좌표:

SELECT (
    6371 * ACOS(
        COS(RADIANS(37)) * COS(RADIANS(lat)) * 
        COS(RADIANS(lng) - RADIANS(-122)) + 
        SIN(RADIANS(37)) * SIN(RADIANS(lat))
    )
) AS distance 
FROM markers 
WHERE distance < 25
ORDER BY distance
LIMIT 0, 20;

이 쿼리는 좌표(37, -122)에서 반경 25km 내에서 가장 가까운 20개 위치에 대한 ID와 계산된 거리를 반환합니다.

결론

MySQL의 Haversine 공식을 사용하면 대권 거리를 정확하게 구할 수 있습니다. 두 개의 지리적 좌표. 이 기술은 정확한 거리 계산이 필요한 위치 기반 애플리케이션에 특히 유용합니다.

위 내용은 Haversine 공식을 사용하여 MySQL에서 Great Circle Distance를 어떻게 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.