저는 지리적 (위도/경도) 점의 데이터베이스 (MySQL)를 가지고 있으며 하나의 사각형 (각 꼭지점마다 2 개의 좌표가 있음)에서 점 목록을 쿼리해야합니다. 이 문제를 빨리 해결할 수있는 쿼리 나 알고리즘이 있습니까?사각형 내부의 점 목록을 반환하십시오.
감사합니다.
저는 지리적 (위도/경도) 점의 데이터베이스 (MySQL)를 가지고 있으며 하나의 사각형 (각 꼭지점마다 2 개의 좌표가 있음)에서 점 목록을 쿼리해야합니다. 이 문제를 빨리 해결할 수있는 쿼리 나 알고리즘이 있습니까?사각형 내부의 점 목록을 반환하십시오.
감사합니다.
당신의 위도/경도 점 색인된다고 가정하고 모든 SQL 쿼리는 꽤 빨리 될 것
SELECT point.lat, point.long FROM point where rect1.lat <= point.lat and point.lat <= rect2.lat and rect1.long <= point.long and point.long <= rect2.long
rect1.lat/rect1.long 및 rect2.lat/rect2.long는 위도/경도의입니다 북쪽 서쪽 가장과 남쪽 동부 쪽 가장 위치.
귀하의 포인트와 직사각형 모두에 대해 위도/경도를 E/WN/S가 아닌 양수 및 음수로 저장하고 싶습니다. E/W 및 N/S가있는 경우 쿼리가 훨씬 더 복잡합니다.
또한이 사각형은 전체 가장자리가 위도/경도 선을 따라 추적하는 것으로 가정합니다.
솔직히 말해서 이것은 매우 간단합니다. 나는 뭔가를 놓치고 있다고 생각합니다 ....
이것은 좋은 대답입니다. 쿼리 속도를 높이기 위해 일부 Geolocation 프레임 워크 또는 특수 알고리즘이 있다고 생각하여이 질문을 게시했습니다. –
하지만 지리적 위치 (실제로는 아님)를 요구하지 않고 숫자가 b와 c 사이에 맞는지 묻는 것이 좋습니다. 올바른 색인이있는 경우 SQL을 사용하는 것이 좋습니다. 지리적 지점 (마을, 산악 호수 등)에 대해 질문을하고 알지 못하는 사이에 특정 관계가 (위도/경도를 미리 알지 못하고 있는지) 확인하고 싶다면 지리적 프레임 워크 유형 문제에 더 가까워 야합니다. –
예, 아마도 문제를 과대 평가했습니다. 감사합니다! –
각 정점에 대해 4 개의 좌표가 있습니까? 물론 각 정점에는 2 개만 있습니다. Lattitude/Longtitude –
Ops, 죄송합니다. 각 정점 (위도와 경도)에 대해 2 좌표를 사용합니다. –