집 >데이터 베이스 >MySQL 튜토리얼 >좌표를 사용하여 반경 5마일 내의 건물을 찾는 방법은 무엇입니까?
좌표를 통해 반경 5마일 이내의 건물 찾기
이 가이드에서는 주어진 좌표에서 반경 5마일 내의 모든 건물을 효율적으로 검색하는 방법을 자세히 설명합니다.
1단계: 데이터 저장 최적화
지오메트리 또는 지리 데이터 유형을 사용하여 건물 위치 데이터를 저장합니다. 이를 통해 공간 쿼리 성능이 크게 향상되고 데이터 유형 변환 문제가 방지됩니다.
2단계: ST_DWithin 또는 ST_Distance 사용
거리 계산을 용이하게 하는 두 가지 기능:
ST_DWithin: 이 함수는 도형이 지정된 거리 내에 있는지 효율적으로 결정합니다. (-4.6314, 54.0887)에서 5마일 이내의 건물을 찾으려면:
<code class="language-sql">SELECT name, longitude, latitude FROM building WHERE ST_DWithin('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude), 8046.72); -- 8046.72 meters = 5 miles</code>
ST_Distance: 이 함수는 거리를 미터 단위로 계산합니다. distance * 0.000621371
을 사용하여 미터를 마일로 변환합니다. (-4.6314, 54.0887)로부터 5마일 이내에 있는 건물의 경우:
<code class="language-sql">SELECT name, longitude, latitude, ST_Distance('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude)) * 0.000621371 AS distance_miles FROM building WHERE distance_miles <= 5;</code>
3단계: 주요 고려사항
위 내용은 좌표를 사용하여 반경 5마일 내의 건물을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!