|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sourceforge.hatbox.RTree
public class RTree
An r-tree implementation based on Antonin Guttman 1984 "R-TREES A DYNAMIC INDEX STRUCTURE FOR SPATIAL SEARCHING"
Constructor Summary | |
---|---|
RTree(RTreeSession session)
|
Method Summary | |
---|---|
void |
delete(Entry entry)
Delete an entry from the index. |
double |
getMinNodeSplit()
|
void |
insert(Entry entry)
Insert a new index entry |
protected Entry |
pickNext(java.util.List<Entry> entryList,
Envelope e1,
Envelope e2)
Pick the entry that has the biggest difference in affinity for the two groups |
protected Entry[] |
pickSeeds(java.util.List<Entry> entryList)
Choose the most wasteful pair of entries to have in the same node and make them the seeds for each of the split nodes. |
java.util.List<java.lang.Long> |
search(Envelope searchEnv)
Search the index for entries that intersect the search envelope |
void |
setMinNodeSplit(double minNodeSplit)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RTree(RTreeSession session)
Method Detail |
---|
public java.util.List<java.lang.Long> search(Envelope searchEnv) throws java.sql.SQLException
(ref Guttman84 p48)
searchEnv
-
java.sql.SQLException
public void insert(Entry entry) throws java.sql.SQLException
(ref Guttman84 p49)
entry
-
java.sql.SQLException
protected Entry[] pickSeeds(java.util.List<Entry> entryList)
(ref Guttman84 p52)
There is some doubt in my mind about the detail of the algorithm with respect to intersecting candidates. Guttman appears to 'double count' the area of intersection, giving rise to artificially low deltas.
entryList
-
protected Entry pickNext(java.util.List<Entry> entryList, Envelope e1, Envelope e2)
(ref Guttman84 p52)
entryList
- The remaining entries.e1
- Envelope of the first group.e2
- Envelope of the second group.
public double getMinNodeSplit()
public void setMinNodeSplit(double minNodeSplit)
public void delete(Entry entry) throws java.sql.SQLException
(ref Guttman84 p50)
entry
-
java.sql.SQLException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |