Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

geos::index::strtree::STRtree Class Reference

A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm. For two-dimensional spatial data. More...

#include <STRtree.h>

Inheritance diagram for geos::index::strtree::STRtree:

geos::index::strtree::AbstractSTRtree geos::index::SpatialIndex List of all members.

Public Member Functions

 STRtree (size_t nodeCapacity=10)
void insert (const geom::Envelope *itemEnv, void *item)
 Adds a spatial item with an extent specified by the given Envelope to the index.
void query (const geom::Envelope *searchEnv, std::vector< void * > &matches)
 Queries the index for all items whose extents intersect the given search Envelope.
void query (const geom::Envelope *searchEnv, ItemVisitor &visitor)
 Queries the index for all items whose extents intersect the given search Envelope and applies an ItemVisitor to them.
bool remove (const geom::Envelope *itemEnv, void *item)
 Removes a single item from the tree.

Static Public Member Functions

static double avg (double a, double b)
static double centreY (const geom::Envelope *e)

Protected Member Functions

AbstractNodecreateNode (int level)
IntersectsOp * getIntersectsOp ()

Detailed Description

A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm. For two-dimensional spatial data.

The STR packed R-tree is simple to implement and maximizes space utilization; that is, as many leaves as possible are filled to capacity. Overlap between nodes is far less than in a basic R-tree. However, once the tree has been built (explicitly or on the first call to query), items may not be added or removed.

Described in: P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With Application To GIS. Morgan Kaufmann, San Francisco, 2002.


Constructor & Destructor Documentation

geos::index::strtree::STRtree::STRtree size_t  nodeCapacity = 10  ) 
 

Constructs an STRtree with the given maximum number of child nodes that a node may have


Member Function Documentation

IntersectsOp* geos::index::strtree::STRtree::getIntersectsOp  )  [inline, protected, virtual]
 

Returns:
a test for intersection between two bounds, necessary because subclasses of AbstractSTRtree have different implementations of bounds.
See also:
IntersectsOp

Implements geos::index::strtree::AbstractSTRtree.

void geos::index::strtree::STRtree::insert const geom::Envelope itemEnv,
void *  item
[virtual]
 

Adds a spatial item with an extent specified by the given Envelope to the index.

Parameters:
itemEnv Envelope of the item, ownership left to caller. TODO: Reference hold by this class ?
item Opaque item, ownership left to caller. Reference hold by this class.

Implements geos::index::SpatialIndex.

void geos::index::strtree::STRtree::query const geom::Envelope searchEnv,
ItemVisitor visitor
[inline, virtual]
 

Queries the index for all items whose extents intersect the given search Envelope and applies an ItemVisitor to them.

Note that some kinds of indexes may also return objects which do not in fact intersect the query envelope.

Parameters:
searchEnv the envelope to query for
visitor a visitor object to apply to the items found

Implements geos::index::SpatialIndex.

void geos::index::strtree::STRtree::query const geom::Envelope searchEnv,
std::vector< void * > &  matches
[inline, virtual]
 

Queries the index for all items whose extents intersect the given search Envelope.

Note that some kinds of indexes may also return objects which do not in fact intersect the query envelope.

Parameters:
searchEnv the envelope to query for
Returns:
a list of the items found by the query in a newly allocated vector

Implements geos::index::SpatialIndex.

bool geos::index::strtree::STRtree::remove const geom::Envelope itemEnv,
void *  item
[inline, virtual]
 

Removes a single item from the tree.

Parameters:
itemEnv the Envelope of the item to remove
item the item to remove
Returns:
true if the item was found

Implements geos::index::SpatialIndex.


The documentation for this class was generated from the following file:
Generated on Thu Jun 11 06:17:03 2009 for GEOS by  doxygen 1.4.4