A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm. For two-dimensional spatial data.
More...
|
| | STRtree (std::size_t nodeCapacity=10) |
| |
| void | insert (const geom::Envelope *itemEnv, void *item) override |
| | Adds a spatial item with an extent specified by the given Envelope to the index. More...
|
| |
| void | query (const geom::Envelope *searchEnv, std::vector< void * > &matches) override |
| | Queries the index for all items whose extents intersect the given search Envelope. More...
|
| |
| void | query (const geom::Envelope *searchEnv, ItemVisitor &visitor) override |
| | Queries the index for all items whose extents intersect the given search Envelope and applies an ItemVisitor to them. More...
|
| |
|
std::pair< const void *, const void * > | nearestNeighbour (ItemDistance *itemDist) |
| |
|
const void * | nearestNeighbour (const geom::Envelope *env, const void *item, ItemDistance *itemDist) |
| |
|
std::pair< const void *, const void * > | nearestNeighbour (STRtree *tree, ItemDistance *itemDist) |
| |
|
std::pair< const void *, const void * > | nearestNeighbour (BoundablePair *initBndPair) |
| |
|
std::pair< const void *, const void * > | nearestNeighbour (BoundablePair *initBndPair, double maxDistance) |
| |
| bool | remove (const geom::Envelope *itemEnv, void *item) override |
| | Removes a single item from the tree. More...
|
| |
|
bool | isWithinDistance (STRtree *tree, ItemDistance *itemDist, double maxDistance) |
| |
|
| AbstractSTRtree (std::size_t newNodeCapacity) |
| | Constructs an AbstractSTRtree with the specified maximum number of child nodes that a node may have.
|
| |
| virtual void | build () |
| | Creates parent nodes, grandparent nodes, and so forth up to the root node, for the data that has been inserted into the tree. More...
|
| |
|
virtual std::size_t | getNodeCapacity () |
| | Returns the maximum number of child nodes that a node may have.
|
| |
|
virtual void | query (const void *searchBounds, const AbstractNode *node, std::vector< void * > *matches) |
| |
| void | iterate (ItemVisitor &visitor) |
| |
| virtual void | boundablesAtLevel (int level, AbstractNode *top, BoundableList *boundables) |
| |
| ItemsList * | itemsTree () |
| | Gets a tree structure (as a nested list) corresponding to the structure of the items and nodes in this tree. More...
|
| |
| virtual void | insert (const geom::Envelope *itemEnv, void *item)=0 |
| | Adds a spatial item with an extent specified by the given Envelope to the index. More...
|
| |
| virtual void | query (const geom::Envelope *searchEnv, std::vector< void * > &)=0 |
| | Queries the index for all items whose extents intersect the given search Envelope. More...
|
| |
| virtual void | query (const geom::Envelope *searchEnv, ItemVisitor &visitor)=0 |
| | Queries the index for all items whose extents intersect the given search Envelope and applies an ItemVisitor to them. More...
|
| |
| virtual bool | remove (const geom::Envelope *itemEnv, void *item)=0 |
| | Removes a single item from the tree. More...
|
| |
|
| AbstractNode * | createNode (int level) override |
| |
| IntersectsOp * | getIntersectsOp () override |
| |
|
virtual AbstractNode * | createNode (int level)=0 |
| |
| virtual std::unique_ptr< BoundableList > | createParentBoundables (BoundableList *childBoundables, int newLevel) |
| | Sorts the childBoundables then divides them into groups of size M, where M is the node capacity. More...
|
| |
|
virtual AbstractNode * | lastNode (BoundableList *nodeList) |
| |
|
virtual AbstractNode * | getRoot () |
| |
|
virtual void | insert (const void *bounds, void *item) |
| | Also builds the tree, if necessary.
|
| |
|
void | query (const void *searchBounds, std::vector< void * > &foundItems) |
| | Also builds the tree, if necessary.
|
| |
|
void | query (const void *searchBounds, ItemVisitor &visitor) |
| | Also builds the tree, if necessary.
|
| |
|
void | query (const void *searchBounds, const AbstractNode &node, ItemVisitor &visitor) |
| |
|
bool | remove (const void *itemEnv, void *item) |
| | Also builds the tree, if necessary.
|
| |
|
std::unique_ptr< BoundableList > | boundablesAtLevel (int level) |
| |
| virtual IntersectsOp * | getIntersectsOp ()=0 |
| |
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.