>데이터 베이스 >MySQL 튜토리얼 >## MySQL에서 반경 기반 위치 검색의 정확도를 향상시키는 방법은 무엇입니까?

## MySQL에서 반경 기반 위치 검색의 정확도를 향상시키는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-28 04:58:01642검색

## How to Improve the Accuracy of Radius-Based Location Searches in MySQL?

반경 기반 검색을 위한 MySQL 경도 및 위도 쿼리의 정확도 향상

mySQL에서 반경 기반 위치 검색을 수행할 때 흔히 발생하는 문제 지정된 반경에서 크게 벗어나는 결과를 얻고 있습니다. 이러한 불일치는 종종 거리 계산 공식의 오류로 인해 발생하여 거리 측정이 정확하지 않게 됩니다.

이 문제를 해결하려면 약간 다른 거리 계산 방법을 활용하는 세련된 쿼리를 고려해 보십시오.

SELECT
    `id`,
    (
        6371 *
        acos(
            cos( radians( :lat ) ) *
            cos( radians( `lat` ) ) *
            cos(
                radians( `long` ) - radians( :long )
            ) +
            sin(radians(:lat)) *
            sin(radians(`lat`))
        )
    ) `distance`
FROM
    `location`
HAVING
    `distance` < :distance
ORDER BY
    `distance`
LIMIT
    25

이 쿼리에서:

  • :lat 및 :long은 사용자 정의 좌표를 나타냅니다.
  • lat 및 long은 데이터베이스에 저장된 좌표를 나타냅니다.
  • : 거리는 마일(또는 3959가 6371로 대체된 경우 킬로미터) 단위로 측정되는 지정된 반경에 해당합니다.

이 공식은 Haversine 공식을 기반으로 거리를 계산하며, 이는 사용된 공식보다 더 정확한 결과를 제공합니다. 원래 쿼리에서. 이 수정된 공식을 통합하면 반경 검색 기능을 구체화하여 반환된 결과가 지정된 반경 범위를 준수하도록 할 수 있습니다.

위 내용은 ## MySQL에서 반경 기반 위치 검색의 정확도를 향상시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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