art*_*hur 5 c++ indexing spatial spatial-index r-tree
我正在使用来自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);
Run Code Online (Sandbox Code Playgroud)
然后我插入了大量的边界框,目前大约2.5M(德国巴伐利亚州的公路网).后来我的目标是插入欧洲的所有道路.
存储管理器和rtree的参数选择有哪些?大多数情况下,我使用rtree来查找到给定查询(bbox交叉点)最近的道路.
由于您的数据是静态的,因此良好的批量加载可能适合您。最流行(也是相当简单)的批量加载是 Sort-Tile-Recursive。然而,它在某种程度上是围绕点数据设计的。当您插入空间对象时,它可能会也可能不会起作用。
如果您使用批量加载,它将不再是 R* 树,而是普通的 R 树。
容量 10 对我来说听起来太小了。您想要更大的扇出。但是您需要进行基准测试,这是数据集和查询相关的,什么是好的。我肯定会尝试100个或更多。
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |