지도에 대한 범위 내 지리공간 쿼리
대규모 데이터베이스에서 지리 데이터를 쿼리하여 지정된 범위 내의 특정 위치를 표시하는 것은 일반적인 과제입니다. 매핑 응용 프로그램에서. 이 질문은 사용자의 지정된 지리적 위치에서 반경 5마일 내의 주소 검색을 최적화하는 방법을 탐구합니다.
거리 계산을 위한 Haversine 공식
사이의 거리를 결정하려면 지구 표면의 두 지점에는 Haversine 공식이 사용됩니다. 이 수학 공식은 지구의 곡률과 점의 위도 및 경도를 고려하여 대원 거리를 계산합니다.
Haveline Formula를 사용한 쿼리 최적화
Haversine 공식, 제공된 MySQL 쿼리는 원하는 범위에 속하는 주소만 검색합니다:
$sql = "SELECT *, (3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";
매개변수 및 변수
결과
쿼리는 각각의 계산된 거리와 함께 주소 목록을 출력합니다. HAVING 절을 사용하면 지정된 5마일 반경 내의 주소만 검색되어 보다 효율적이고 대상이 지정된 레코드를 선택할 수 있습니다. 이 접근 방식은 전송 및 처리되는 데이터의 양을 대폭 줄여 매핑 애플리케이션의 전반적인 성능을 향상시킵니다.
위 내용은 반경 내의 주소에 대해 MySQL에서 GeoSpatial 쿼리를 최적화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!