집 >데이터 베이스 >MySQL 튜토리얼 >SQL을 사용하여 겹치는 마커 반경을 어떻게 식별할 수 있습니까?
반경 내에서 겹치는 마커 확인
중복되는 마커 반경 내에 속하는 사람을 식별하기 위해 기하학적 원리를 활용하고 일관성을 위해 거리를 킬로미터로 변환합니다. .
중심(x1, y1)과 반경 r이 있는 원 내의 점(x, y)에 대한 방정식은 다음과 같습니다.
(x - x1)^2 + (y - y1)^2 <= r^2
도는 공식을 사용하여 킬로미터로 변환되므로 1도 = 111.12km, 방정식은 다음과 같습니다.
((x - x1) * 111.12)^2 + ((y - y1) * 111.12)^2 = 4 (for radius = 2km)
이 방정식을 사용하면 마커 반경과 겹치는 결과를 검색하는 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, 2)) <= 4</code>
In 이 쿼리에서는 UserA의 레코드가 테이블 A로 표시되고, ID 8인 UserB의 레코드가 테이블 B로 표시됩니다. POW() 함수는 숫자를 거듭제곱하며, 여기서는 좌표 간의 차이를 제곱하는 데 사용됩니다.
위 내용은 SQL을 사용하여 겹치는 마커 반경을 어떻게 식별할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!