MySQL 공간 확장을 사용하여 원 내 지점 찾기
배경
MySQL 공간 확장을 사용하면 사용자는 MySQL 데이터베이스에 저장된 공간 데이터를 조작하고 분석합니다. 일반적인 작업 중 하나는 주어진 원 내에 위치한 점을 식별하는 것입니다. 이 시나리오는 위치 기반 서비스 및 지리 공간 분석과 같은 애플리케이션에서 자주 발생합니다.
위도 및 경도에 대한 MySQL 거리 함수 사용
사용되지 않는 정보:
처음에는 MySQL 공간 확장이 위도 및 위도를 지원하지 않는다는 질문이 있었습니다. 경도 거리 계산. 그러나 이 정보는 오래된 정보입니다. MySQL 5.7부터 공간 확장은 위도 및 경도 좌표를 사용하여 정의된 점 간의 유클리드 거리 계산을 지원합니다.
구현 예
MySQL 공간을 사용하여 원 내 점을 선택하려면 확장을 사용하려면 ST_Distance() 함수를 사용할 수 있습니다. 이 함수는 두 지점 사이의 거리를 미터 단위로 계산합니다. 사용자 위치 주변에 반경 100미터의 가상 원을 생성하고 '플래그' 좌표와 원 중심 사이의 거리가 이 반경 내에 있는지 확인하면 원 내의 지점을 필터링할 수 있습니다.
다음은 샘플 쿼리입니다.
SELECT id, name, ST_Distance(coordinates, ST_PointFromGeoJSON('{ "type": "Point", "coordinates": [<user_longitude>, <user_latitude>] })) AS distance_in_meters FROM flags HAVING distance_in_meters <= 100 ORDER BY distance_in_meters ASC;
이 쿼리는 100미터 반경 원 내의 모든 '플래그'를 검색합니다. 사용자 위치.
추가 참고 사항:
위 내용은 MySQL 공간 확장을 사용하여 원 내에서 점을 어떻게 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!