Package com.kheops.jmap.spatial.index
Class AbstractSTRtree<T>
java.lang.Object
com.kheops.jmap.spatial.index.AbstractSTRtree<T>
- Direct Known Subclasses:
STRtree
Base class for STRtree and SIRtree. STR-packed R-trees are described in:
P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
Application To GIS. Morgan Kaufmann, San Francisco, 2002.
This implementation is based on Boundables rather than just AbstractNodes, because the STR algorithm operates on both nodes and data, both of which are treated here as Boundables.
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static interface
A test for intersection between two bounds, necessary because subclasses of AbstractSTRtree have different implementations of bounds. -
Field Summary
-
Constructor Summary
ConstructorDescriptionAbstractSTRtree
(int nodeCapacity) Constructs an AbstractSTRtree with the specified maximum number of child nodes that a node may have -
Method Summary
Modifier and TypeMethodDescriptionboundablesAtLevel
(int level) 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.protected int
compareDoubles
(double a, double b) protected abstract AbstractNode
createNode
(int level) createParentBoundables
(List<Boundable> childBoundables, int newLevel) Sorts the childBoundables then divides them into groups of size M, where M is the node capacity.protected int
depth()
protected int
depth
(AbstractNode node) protected abstract Comparator
<Boundable> protected abstract AbstractSTRtree.IntersectsOp
int
Returns the maximum number of child nodes that a node may haveprotected AbstractNode
getRoot()
protected void
protected AbstractNode
Also builds the tree, if necessary.protected void
query
(Rectangle searchBounds, ItemVisitor<T> visitor) Also builds the tree, if necessary.protected boolean
Removes an item from the tree.protected int
size()
protected int
size
(AbstractNode node)
-
Field Details
-
root
-
-
Constructor Details
-
AbstractSTRtree
public AbstractSTRtree(int nodeCapacity) Constructs an AbstractSTRtree with the specified maximum number of child nodes that a node may have
-
-
Method Details
-
build
public 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. Can only be called once, and thus can be called only after all of the data has been inserted into the tree. -
createNode
-
createParentBoundables
Sorts the childBoundables then divides them into groups of size M, where M is the node capacity. -
lastNode
-
compareDoubles
protected int compareDoubles(double a, double b) -
getRoot
-
getNodeCapacity
public int getNodeCapacity()Returns the maximum number of child nodes that a node may have -
size
protected int size() -
size
-
depth
protected int depth() -
depth
-
insert
-
query
Also builds the tree, if necessary. -
query
Also builds the tree, if necessary. -
getIntersectsOp
- Returns:
- a test for intersection between two bounds, necessary because subclasses of AbstractSTRtree have different implementations of bounds.
- See Also:
-
remove
Removes an item from the tree. (Builds the tree, if necessary.) -
boundablesAtLevel
-
getComparator
-