2013-08-25 1 views
1

수천 개의 개체를 포함 할 수있는 비교적 큰 영역 (수십 제곱 킬로미터)이 있습니다. 대부분의 물체는 작고 1m2이므로 대부분 점으로 간주 될 수 있습니다. 그러나 일부 개체는 전체 영역과 동일한 크기의 순서로 매우 큽니다.큰 개체의 공간 인덱스

이러한 개체에 대해 간단한 공간 쿼리를 수행하고 싶습니다 ('이 사각형과 겹치는 모든 개체 찾기'). 저는 R-tree를 가지고 놀았습니다. 작은 물체에서 잘 작동하는 것 같습니다. 그러나 일단 큰 개체를 포함 시키면 R-tree가 여전히 최선의 선택인지 확실하지 않습니다.

그래서 질문이 있습니다. 어떤 종류의 공간 인덱스가 가장 적합할까요? 보너스는 객체의 빠른 추가/제거를 특징으로하는 Java 구현이있는 경우를 가리 킵니다.

답변

2

하는 경우 Java에서 공간 인덱스 구현을 찾고 있습니다. JTS 라이브러리는 상당히 가볍습니다. QuadTreeSTRTree의 두 가지 공간 인덱스 구현을 제공합니다. STRTree는 단지 공간 최적화 된 R-Tree 구현입니다. 계층 적 특성으로 인해 QuadTree 및 R-Tree는 작은 개체에서 큰 개체까지 다양한 수준에서 개체를 지원합니다.

R-Tree의 한 가지 제한 사항은 인덱스 계층이 데이터에 의해 결정되고 데이터가 삽입 될 때 변경되어야 할 수 있기 때문에 삽입이 어렵다는 것입니다 (JTS 구현은 삽입을 허용하지 않음). 쿼드 트리 계층 데이터가 분배되는 방식에 관계없이 고정됩니다. 이것은 아마도 피쳐 크기 이상의 구현에 영향을 미칠 것입니다.

Oracle Spatial 문서에는 특정 상황에서 가장 적합한 공간 인덱스 유형에 대한 좋은 정보가 있습니다. 일부 유형은 Oracle DB와 관련이 있습니다. 나는 [GIS 스택 교환 (http://gis.stackexchange.com) 이전에보고 된 http://docs.oracle.com/html/A88805_01/sdo_intr.htm

+0

오라클 문서가 흥미 롭습니다. 실제로 개체를 삽입하고 삭제해야하기 때문에 QuadTree가 더 나은 선택 일 수 있습니다. – mdriesen

0
  1. 귀하의 질문은 거대하고 데이터베이스를 생성하고 관리하는 방법에 대한 자신의 규칙을 가지고 Geographic information system라는 주제와 관련된보다 효율적이다.
  2. GIS- 지리 정보 시스템의 한 예로 Google지도가 있습니다.
  3. GIS 프로젝트는 GIS 프로젝트는 일반적으로 C 언어에서 작동 examples
  4. 자바는 데이터 관리를위한 GIS를 다루는 선택의 언어가 아닙니다 프로젝트에서 작업하는 많은 도구를 가지고refer
+0

에서 공간 데이터 섹션의 인덱싱을 볼 수 있지만 전체 GIS 시스템은 내가 필요로하는 것에 대해 과잉의 비트를 보였다 . 본질적으로, 나는 매우 단순한 드로잉 도구 (매우 큰 캔버스를 가지고 있음)를 만들기 위해 노력하고 있습니다. – mdriesen

+0

@docM 어떤 것은 작습니다. google map api를 사용하십시오. [link] (https://developers.google.com/maps/) –