【发布时间】:2012-10-25 15:13:02
【问题描述】:
我正在使用来自http://libspatialindex.github.com/ 的空间索引库
我正在主内存中创建一个 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);
然后我插入大量边界框,目前大约 250 万(德国巴伐利亚州的道路网络)。稍后我的目标是插入欧洲的所有道路。
存储管理器和 rtree 的参数有哪些好的选择?大多数情况下,我使用 rtree 来查找到给定查询(bbox 交叉点)最近的道路。
【问题讨论】:
-
+1 因为我以前从未听说过 R* 树,而且它非常有趣。 en.wikipedia.org/wiki/R*_tree
-
嗯,它是一个非常标准的索引结构,用于回答空间范围查询(给我所有落入给定矩形查询的对象)和最近邻查询(给我k-最近的对象到我的点查询)。如果您有兴趣,请查看一般空间索引:en.wikipedia.org/wiki/Spatial_database
标签: c++ indexing spatial spatial-index r-tree