我使用的是来自http://libspatialindex.github.com/的spatialindex库
我在主存中创建了一个R*树:
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);然后我插入了大量的边界框,目前大约2.5米(德国巴伐利亚州的公路网)。稍后,我将致力于插入欧洲的所有道路。
对于存储管理器和rtree,哪些参数是好的选择?我主要使用rtree来查找与给定查询最近的道路(bbox交叉口)。
发布于 2012-11-04 18:56:07
因为您的数据是静态的,所以一个好的大容量装载可能对您有效。最流行的(也是相当简单的)块加载是Sort-Tile-Recursive。但是,它在某种程度上是围绕点数据设计的。当您插入空间对象时,它可能会工作,也可能不会工作。
如果您使用的是批量装载,那么它将不再是R*树,而是普通的R树。
容量10对我来说太小了。你想要一个更大的扇形。但你需要进行基准测试,这是数据集和查询相关的好东西。我肯定会尝试100或更多。
https://stackoverflow.com/questions/13071706
复制相似问题