ich die spatialindex Bibliothek von http://libspatialindex.github.com/Wahl der Parameter für R * -Baum mit SpatialIndex Bibliothek
mit I im Hauptspeicher einen R * -Baum erschaffe:
size_t capacity = 10;
bool bWriteThrough = false;
fileInMem = StorageManager
::createNewRandomEvictionsBuffer(*memStorage, capacity, bWriteThrough);
double fillFactor = 0.7;
size_t indexCapacity = 10;
size_t leafCapacity = 10;
size_t dimension = 2;
RTree::RTreeVariant rv = RTree::RV_RSTAR;
tree = RTree::createNewRTree(*fileInMem, fillFactor, indexCapacity,
leafCapacity, dimension, rv, indexIdentifier);
Dann bin Einfügen ich eine große Anzahl der Bounding Boxes, derzeit ca. 2,5 Mio. (Straßennetz von Bayern in Deutschland). Später werde ich versuchen, alle Straßen Europas einzufügen.
Was sind eine gute Wahl der Parameter für den Storage Manager und Rtree? Meistens verwende ich den Baum, um die nächstgelegenen Straßen zu einer bestimmten Abfrage zu finden (Bbox-Schnittpunkt).
+1 Weil ich noch nie zuvor von einem R * -Baum gehört habe, und es ist ziemlich interessant. http://en.wikipedia.org/wiki/R*_tree –
Nun, es ist eine ziemlich Standard-Index-Struktur, die verwendet wird, um Raumbereichsabfragen zu beantworten (geben Sie mir alle Objekte, die in eine bestimmte Rechteckabfrage fallen) und Nearest-Neighbor-Abfragen (Gib mir die k-nächsten Objekte zu meiner Punktabfrage). Wenn Sie interessiert sind, sehen Sie sich räumliche Indizes im Allgemeinen an: http://en.wikipedia.org/wiki/Spatial_database – arthur