发布
社区首页 >问答首页 >Boost rtree.bounds():获取更多的框和/或访问其结构

Boost rtree.bounds():获取更多的框和/或访问其结构
EN

Stack Overflow用户
提问于 2019-01-10 14:53:19
回答 1查看 330关注 0票数 1

目前,我正在使用分布式网格进行数值模拟:我正在使用一个由包围框组成的boost rtree作为搜索工具。我有许多边框,每个框都有一个标签(一个无符号的int:“拥有”单元格的进程)。

在全局级别上,我需要一个更“不精确”的描述:因此我使用rtree.bounds(),然后通过全局通信发送这个框。不幸的是,这并不总是有效的,因为标记是以以下方式生成的:

  1. 带有相同标签的盒子都聚集在一起:在这种情况下,它就像一种魅力。
  2. 带有相同标签的框形成两个“连接的”集群:在这种情况下,额外的空空间意味着以后的计算将导致大量无用的通信。

因为rtree是由边框组成的,所以我尝试访问rtree结构,这样我就可以得到两个或多个粗包围盒(rtree的第一层/第二层)。这个是可能的吗?或者有一个快速算法来拆分rtree.bounds()框?

目前我正在“用手”切割边框,但由于我已经把它们放在树上,我相信这是对计算能力的浪费。

编辑:我找到了这个论坛http://boost-geometry.203548.n3.nabble.com/How-could-I-get-nodes-MBRs-of-the-R-Tree-td4026812.html,这似乎是对我的问题的答案。我将尝试使用它,如果解决了,我将发布解决方案:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-30 01:39:44

正如您所发现的,有一种访问节点的方法,但它不是R-树的官方接口的一部分。您必须实现遍历R树的访问者,并使用boost::geometry::index::detail::rtree::utilities::view将其应用于R树。

先查看这个来访者遍历R树深度,然后在每个级别检查节点的边界框是否包含来自较低级别的所有元素。这里,您可以看到这个访问者是如何应用于R树的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54131277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档