加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用SpatialIndex库选择R * Tree的参数

发布时间:2020-12-16 05:01:58 所属栏目:百科 来源:网络整理
导读:我正在使用 http://libspatialindex.github.com/的spatialindex库 我在主内存中创建一个R *树: size_t capacity = 10;bool bWriteThrough = false;fileInMem = StorageManager ::createNewRandomEvictionsBuffer(*memStorage,capacity,bWriteThrough);doubl
我正在使用 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.5M(德国巴伐利亚州的公路网).后来我的目标是插入欧洲的所有道路.

存储管理器和rtree的参数选择有哪些?大多数情况下,我使用rtree来查找到给定查询(bbox交叉点)最近的道路.

解决方法

由于您的数据是静态的,因此良好的批量加载可能对您有用.最受欢迎(和相当简单)的bluk负载是Sort-Tile-Recursive.但是,它有点围绕点数据设计.在插入空间对象时,它可能也可能不起作用.

如果使用批量加载,它将不再是R *树,而是普通的R树.

容量10听起来对我来说太少了.你想要一个更大的扇出.但是你需要进行基准测试,这是数据集和查询依赖什么是好的.我肯定会尝试100或更多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读