提升 :持久存储 R 树
Boost : persistent storage of R-trees?
所以 boost 以 R 树的形式提供了很好的空间索引功能。这很整洁,但是一旦构建了树,似乎还不可能对其进行序列化,我错了吗?
通常的"out_archive <<rtree"语法不起作用,因为 rtree 没有 serialize() 成员。在 boost 1.57 中,似乎有一些实验性代码,例如/boost/geometry/index/detail/serialization.hpp,但它实际上似乎没有编译!
所以第一个问题:有人知道如何使用 boost 序列化 R 树吗?
如果没有,那么我的第二个问题:您将如何将索引永久存储在磁盘上以避免每次都重建它?(我有一个包含 145M 个条目的数据集,构建索引需要几个小时,所以我真的不想多次构建它!
-
包装算法和批量装载
可以加载包(使用打包算法)。
此外,还有一些算法创建包含一些对象数量的 R 树。这种技术称为批量加载,通过使用打包算法[5] [6]来完成。这种方法速度更快,并且会产生具有更好内部结构的 R 树。这意味着查询性能得到提高。
[5] 洛伊滕格,斯科特·埃金顿、杰弗里·洛佩兹, 马里奥 A. (1997).STR:一种简单有效的R树堆积算法
[6] 加西亚,伊万·洛佩兹、马里奥·洛伊滕格,斯科特T.(1997)。一种用于批量加载 R 树的贪婪算法
更多详细信息: http://www.boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/spatial_indexes/introduction.html
-
使用内存映射文件
您可以将内存映射文件与自定义分配器一起使用。这样,您可以使用所需的任何表示形式,它将自动保留
更多详细信息: http://www.boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/spatial_indexes/rtree_examples/index_stored_in_mapped_file_using_boost_interprocess.html
- 在提升multi_index容器中,是否定义了"default index"?
- 将字符串存储在c++中的稳定内存中
- 如何将提升正常分发存储为类成员
- C++标准:松弛的原子存储是否可以提升到互斥锁以上
- Cmake忽略了我所有关于在boost::beast存储库中在哪里找到提升的指令
- 强制提升变体以存储指针
- 在提升shared_ptr中存储多个 Lua 状态
- 读取图形可视化的点文件,而无需在提升图中存储节点 ID
- 为什么提升circular_buffer存储我的布尔值?
- 在 std::string 变量中使用提升库存储文件名
- 将容器存储在提升::变体中
- 提升 :持久存储 R 树
- 动态提升线程运行存储在具有共享指针的向量中的对象的方法
- 测试提升属性树是存储基元还是子树
- 在 STL 地图中存储提升accumulator_set
- 存储提升::计时器产生一个变量
- 我应该使用哪个提升类来存储人类年龄
- 如何提升::变体存储引用
- 我可以使用提升池作为存储来支持提升侵入式集合吗
- 提升函数:存储由boost::bind返回的任何函数