com.vividsolutions.jts.index.strtree
public abstract class AbstractSTRtree extends java.lang.Object
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.
Modifier and Type | Class and Description |
---|---|
protected static interface |
AbstractSTRtree.IntersectsOp
A test for intersection between two bounds, necessary because subclasses
of AbstractSTRtree have different implementations of bounds.
|
Modifier and Type | Field and Description |
---|---|
protected AbstractNode |
root |
Constructor and Description |
---|
AbstractSTRtree(int nodeCapacity)
Constructs an AbstractSTRtree with the specified maximum number of child
nodes that a node may have
|
Modifier and Type | Method and Description |
---|---|
protected java.util.List |
boundablesAtLevel(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) |
protected java.util.List |
createParentBoundables(java.util.List 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 java.util.Comparator |
getComparator() |
protected abstract AbstractSTRtree.IntersectsOp |
getIntersectsOp() |
int |
getNodeCapacity()
Returns the maximum number of child nodes that a node may have
|
AbstractNode |
getRoot() |
protected void |
insert(java.lang.Object bounds,
java.lang.Object item) |
java.util.List |
itemsTree()
Gets a tree structure (as a nested list)
corresponding to the structure of the items and nodes in this tree.
|
protected AbstractNode |
lastNode(java.util.List nodes) |
protected java.util.List |
query(java.lang.Object searchBounds)
Also builds the tree, if necessary.
|
protected void |
query(java.lang.Object searchBounds,
ItemVisitor visitor)
Also builds the tree, if necessary.
|
protected boolean |
remove(java.lang.Object searchBounds,
java.lang.Object item)
Removes an item from the tree.
|
protected int |
size() |
protected int |
size(AbstractNode node) |
protected AbstractNode root
public AbstractSTRtree(int nodeCapacity)
public void build()
protected abstract AbstractNode createNode(int level)
protected java.util.List createParentBoundables(java.util.List childBoundables, int newLevel)
protected AbstractNode lastNode(java.util.List nodes)
protected int compareDoubles(double a, double b)
public AbstractNode getRoot()
public int getNodeCapacity()
protected int size()
protected int size(AbstractNode node)
protected int depth()
protected int depth(AbstractNode node)
protected void insert(java.lang.Object bounds, java.lang.Object item)
protected java.util.List query(java.lang.Object searchBounds)
protected void query(java.lang.Object searchBounds, ItemVisitor visitor)
protected abstract AbstractSTRtree.IntersectsOp getIntersectsOp()
AbstractSTRtree.IntersectsOp
public java.util.List itemsTree()
The returned List
s contain either Object
items,
or Lists which correspond to subtrees of the tree
Subtrees which do not contain any items are not included.
Builds the tree if necessary.
protected boolean remove(java.lang.Object searchBounds, java.lang.Object item)
protected java.util.List boundablesAtLevel(int level)
protected abstract java.util.Comparator getComparator()