2009-03-08 4 views
0

각 항목이 위도/경도 좌표가있는 점으로 표시되는 관계형 데이터베이스가 있습니다. 사용자가지도에서 임의의 다각형을 표시 할 수있는 권한을 부여하고 다각형 모양 내에있는 모든 항목을 반환하려고합니다.임의의 다각형 영역에 대한 좌표 바운드 데이터 데이터베이스 검색

이것을 달성하는 가장 좋은 방법은 무엇입니까?

또한 작은 오류는 괜찮습니다 (즉, 다각형을 사각형 집합으로 바꾸는 효과적인 방법이 있다면 괜찮습니다).

+0

BTW-- 왜이 커뮤니티 위키입니까? 잘 정의 된 기술 답변과 함께 좋은 기술적 인 질문과 같습니다. – dmckee

+0

나는 그 안에 해를 보지 못한다. 나는 최악의 상태로 그대로 남아있을 것이다. –

답변

-1

오래 해킹 :

<point in question>- <point far away>을 연결하는 라인이 다각형의 경계 세그먼트들 중 하나를 통과하는 횟수를 계산.

  • 에도 번호는 점
  • 홀수 번호는 다각형 내부
+0

예,하지만 SQL 쿼리에서 어떻게합니까? –

+0

단서가 없습니다. – dmckee

+0

어느 쪽 말 : 당신이 이것을 줄이면, 당신 자신의 코드에서해야 할 수도 있습니다. 이 경우 Jason의 아이디어 *는 SQL로 구현 될 수 있으며, 감소 된 데이터 세트를 빨아 들일 수 있습니다. – dmckee

2

한 가지 방법은 신속하게 고려해야 할 점의 수를 줄이려고하면 다각형의 경계 사각형 (의 예를 단지 분-X, 최소 Y, 최대-X, 최대-Y를 계산하는 것이다 다각형의 점)을 선택한 다음 경계 사각형 내의 점을 선택합니다 (즉, x는 최소 x와 최대 x 사이이고 y는 동일 함).

물론이 모든 포인트가 반드시 다각형 안에있는 것은 아니지만, 이제는 코드로 다듬을 수 있습니다.

관련 문제