>  기사  >  데이터 베이스  >  데이터베이스에서 마커 반경 내의 결과를 검색하는 방법: 정확한 거리 계산을 위한 SQL 접근 방식

데이터베이스에서 마커 반경 내의 결과를 검색하는 방법: 정확한 거리 계산을 위한 SQL 접근 방식

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 05:40:02338검색

How to Retrieve Results Within a Marker Radius from a Database: A SQL Approach to Accurate Distance Calculation

데이터베이스에서 마커 반경 내 결과를 검색하는 방법: 정확한 거리 계산

데이터베이스에서 지정된 마커 반경 내에 속하는 결과를 정확하게 확인하려면 데이터베이스에서는 원의 방정식을 고려하는 것이 중요합니다.

(x-x1)^2 + (y - y1)^2 = r^2

여기서 (x,y)는 원 내의 점을 나타내고, (x1, y1)은 원의 중심이고, r은 원의 반경입니다. .

이 질문의 맥락에서 원의 중심은 사용자의 마커 위치(위도 및 경도)이고 잠재적인 일치 또는 결과는 원 내의 점으로 표시됩니다. 반경은 1킬로미터로 설정됩니다.

다양한 단위(위도 및 경도의 각도와 반경의 킬로미터) 문제를 해결하기 위해 방정식을 다음과 같이 수정합니다.

((x-x1)*111.12)^2 + ((y-y1)*111.12)^2 = 4 (where 2 is the radius in kilometers and 111.12 represents the conversion factor from degrees to kilometers)

이 방정식을 기반으로 마커 원과 교차하는 결과를 검색하는 SQL 문은 다음과 같이 작성할 수 있습니다.

SELECT A.user_id, A.radius_id, A.latitude, A.logitude
FROM UserA AS A,
     (SELECT user_id, latitude, longitude
       FROM UserB
       WHERE user_id = 8) AS B
WHERE (POW((A.latitude-B.latitude)*111.12, 2) + POW((A.longitude - B.longitude)*111.12, 2)) <= 4

위 내용은 데이터베이스에서 마커 반경 내의 결과를 검색하는 방법: 정확한 거리 계산을 위한 SQL 접근 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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