2015-01-20 3 views
0

없이 다각형 내부의 지점을 검색하는 방법의 상황은 다음과 같습니다GeoDjango

  • 각 공급 업체는 사용자가 Google지도 (다각형)을 사용하여 정의한 일부 서비스 영역을 가지고있다.
  • 이 데이터를 DB에 저장하고 이에 대한 간단한 (그러나 빠름) 쿼리를 작성해야합니다.
  • "x, y가 포함 된 서비스 영역이있는 모든 공급 업체 목록 표시"또는 "어떤 다각형 (서비스 영역) x, y가 안에 있습니까?"

현재이 문제에 대한 매우 복잡한 해결책 인 GeoDjango를 발견했습니다. 그것을 사용하려면, 나는 아주 복잡한 설정이 필요하고 최근 (그리고 좋은) 튜토리얼을 찾을 수 없었다. 일부 x는, y는 어떤 다각형

문제에 속하는지 확인하는 방법을 적용

  • 를 데이터베이스에 저장
  • 로 JSON 등 모든 다각형 :

    나는이 솔루션과 함께 이 솔루션은 매우 분명합니다. 모든 다각형을 평가해야한다는 것을 고려하면 쿼리를 실행하는 데 너무 오래 걸릴 수 있습니다. 마지막으로

    :이 문제에 대한 다른 해결책을 찾고 있어요, 나는 어떤 점은 다각형 내부 처리 여부

    가 결정 내 현재 실행중인 서버에 설치 GeoDjango이없는 뭔가를 찾을 희망하는 것은 문제가되지 않습니다 (나는 몇 가지 예를 발견했다.) 문제는 DB에서 모든 단일 다각형을 검색하고 확장되지 않는다는 것을 평가하는 것입니다. 이를 해결하기 위해 폴리곤을 빠르게 쿼리 할 수있는 방식으로 저장해야합니다.

+2

GeoDjango를 사용하지 마십시오. 대신 Shapely를 사용할 수 있습니다. http://streamhacker.com/2010/03/23/python-point-in-polygon-shapely/. 그러나 동시에 많은 것을 묻고 있습니다. 문제는 DB에 데이터를 저장하는 방법입니다. 또는 점이 다각형에 있는지 여부를 찾는 방법은 무엇입니까? –

+0

tx @AntonisChristofides! 나는 세부 사항을 추가했다. 문제는 점이 다각형 내부에 있음을 결정하는 것이 아니라, 여러 점을 빠르게 질의 할 수있는 방식으로 다각형을 저장해야합니다. 지금은 분명합니까? Shapely가 문제를 해결하지 못하는 것 같습니다. – MatheusJardimB

+1

그러면 PostGIS가 필요할 수도 있습니다. –

답변

0

내 접근 방식.

  1. 다각형의 중심을 찾으십시오. C++ code. 반경 데이터베이스
  2. 중심에 정점에서 가장 긴 거리를 찾기 (pythag)
  3. 스토어에서
  4. 스토어
  5. & 반경에 다각형의 1 이상의 결과를 사용 포인트 경우 상자
  6. 을 경계로 중심을 사용
  7. 검색 데이터베이스 결과 폴리곤