我需要创建一个 3D R*-tree,也许是为了长时间存储,但性能也是一个问题。为了创建树,我决定使用 Boost 的 spacialindex 并且基本上找到了两种可能的方法。
或者我直接使用对象创建它,因为它在这里:存储在向量中的多边形索引,但是这不允许我在不再次创建 R*-tree 的情况下存储和加载它。
或者我可以使用此处解释的映射文件:使用 Boost.Interprocess 存储在映射文件中的索引,但是,我不确定在这种情况下查询的性能是否足够好。
我的 r-tree 将包含数千个条目,但很可能少于 100,000 个。现在我的问题是,与使用标准对象相比,使用映射文件是否存在任何强大的性能问题?此外,如果创建大约 100,000 个值的 R*-tree 不需要花费大量时间(我可以将所有边界框和相应的键/数据存储在一个文件中),那么跳过映射文件并在每次运行程序时创建树?
希望有人可以在这里帮助我,因为文档并没有真正提供太多信息(尽管它仍然比 libspacialindex 的文档更好)。