집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 공간 확장을 사용하여 원 내의 점을 어떻게 효율적으로 찾을 수 있습니까?
MySQL 공간 확장을 사용하여 원 내 지점 찾기
위도와 경도를 통해 사용자 위치가 결정되는 시나리오에서 일반적인 작업은 다음과 같습니다. 특정 반경 내 근처의 깃발을 검색합니다. MySQL의 공간 확장을 사용하면 지리공간 데이터에 대한 근접 쿼리를 수행할 수 있습니다.
원 쿼리를 위한 공간 함수
처음에는 MySQL에 위도/경도 거리 계산을 위한 공간 함수가 부족했습니다. , MySQL 5.7 릴리스에서는 이러한 계산에 대한 지리 공간적 지원이 도입되었습니다. 원형 근접 쿼리의 경우 ST_Distance_Sphere 함수를 사용할 수 있습니다.
SELECT * FROM flags WHERE ST_Distance_Sphere(coordinates, ST_GeomFromText('POINT(latpoint longpoint)')) < 100;
이 쿼리에서 좌표는 지리공간 지점을 포함하는 열을 나타내고, latpoint 및 longpoint는 사용자 위치의 위도 및 경도 값입니다. 원의 반경은 미터 단위로 지정됩니다.
대체 접근 방식
MySQL 5.7 이전에는 사용자가 대체 접근 방식을 사용할 수 있었습니다.
사용 예
기하학적으로 '좌표'가 있는 '플래그' 테이블을 가정합니다. point 열에서 다음 쿼리는 사용자로부터 100m 이내에 있는 모든 플래그를 검색합니다. 위치:
SELECT * FROM flags WHERE ST_Distance_Sphere(coordinates, ST_GeomFromText('POINT(42.81 -70.81)')) < 100;
결론
MySQL의 공간 확장은 위도를 기준으로 원 내 지점을 찾는 기능을 포함하여 지리공간 데이터에 대한 효율적인 근접 쿼리를 위한 강력한 도구를 제공합니다. 및 경도 위치.
위 내용은 MySQL 공간 확장을 사용하여 원 내의 점을 어떻게 효율적으로 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!