|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.vividsolutions.jts.index.quadtree.Quadtree
public class Quadtree
A Quadtree is a spatial index structure for efficient range querying
of items bounded by 2D rectangles.
Geometrys can be indexed by using their
Envelopes.
Any type of Object can also be indexed as
long as it has an extent that can be represented by an Envelope.
This Quadtree index provides a primary filter for range rectangle queries. The various query methods return a list of all items which may intersect the query rectangle. Note that it may thus return items which do not in fact intersect the query rectangle. A secondary filter is required to test for actual intersection between the query rectangle and the envelope of each candidate item. The secondary filter may be performed explicitly, or it may be provided implicitly by subsequent operations executed on the items (for instance, if the index query is followed by computing a spatial predicate between the query geometry and tree items, the envelope intersection check is performed automatically.
This implementation does not require specifying the extent of the inserted items beforehand. It will automatically expand to accomodate any extent of dataset.
This data structure is also known as an MX-CIF quadtree following the terminology of Samet and others.
| Constructor Summary | |
|---|---|
Quadtree()
Constructs a Quadtree with zero items. |
|
| Method Summary | |
|---|---|
int |
depth()
Returns the number of levels in the tree. |
static Envelope |
ensureExtent(Envelope itemEnv,
double minExtent)
Ensure that the envelope for the inserted item has non-zero extents. |
void |
insert(Envelope itemEnv,
Object item)
Adds a spatial item with an extent specified by the given Envelope to the index |
boolean |
isEmpty()
Tests whether the index contains any items. |
List |
query(Envelope searchEnv)
Queries the tree and returns items which may lie in the given search envelope. |
void |
query(Envelope searchEnv,
ItemVisitor visitor)
Queries the tree and visits items which may lie in the given search envelope. |
List |
queryAll()
Return a list of all items in the Quadtree |
boolean |
remove(Envelope itemEnv,
Object item)
Removes a single item from the tree. |
int |
size()
Returns the number of items in the tree. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Quadtree()
| Method Detail |
|---|
public static Envelope ensureExtent(Envelope itemEnv,
double minExtent)
public int depth()
public boolean isEmpty()
public int size()
public void insert(Envelope itemEnv,
Object item)
SpatialIndexEnvelope to the index
insert in interface SpatialIndex
public boolean remove(Envelope itemEnv,
Object item)
remove in interface SpatialIndexitemEnv - the Envelope of the item to be removeditem - the item to remove
true if the item was found (and thus removed)public List query(Envelope searchEnv)
query in interface SpatialIndexsearchEnv - the envelope of the desired query area.
public void query(Envelope searchEnv,
ItemVisitor visitor)
query in interface SpatialIndexsearchEnv - the envelope of the desired query area.visitor - a visitor object which is passed the visited itemspublic List queryAll()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||