집 >데이터 베이스 >MySQL 튜토리얼 >지정된 반경을 가진 여러 원형 마커가 겹치는 결과에 대해 데이터베이스를 쿼리하는 방법은 무엇입니까?
반경 중첩 내 결과에 대한 데이터베이스 쿼리
문제:
지리적 데이터베이스 데이터의 경우 지정된 반경을 가진 여러 원형 마커와 부분적으로 겹치는 결과를 선택하려고 합니다. 기존 SQL 쿼리는 여러 마커가 겹치는 결과를 정확하게 식별하지 못합니다.
해결책:
정확한 결과를 얻으려면 다음 SQL 문을 사용할 수 있습니다.
<code class="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*cos(A.latitude), 2)) <= 4</code>
설명:
이 쿼리는 원의 방정식을 사용하여 UserA의 주어진 지점이 원의 반경(위도 및 UserB의 반경 경도). 다음 단계가 포함됩니다.
이 쿼리를 사용하면 원이 서로 닿아도 여러 개의 원형 마커가 겹치는 결과를 정확하게 식별할 수 있습니다.
위 내용은 지정된 반경을 가진 여러 원형 마커가 겹치는 결과에 대해 데이터베이스를 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!