计算树之间的交集
Calculate intersections between rtrees
我正在关注提升几何 rtree 文档。我能够使用一个框执行空间查询,以便检索与其相交的 rtree 元素列表。
我想知道是否有办法在 rtree 和另一个 rtree(相同类型)之间执行空间查询。
像这样:
typedef bg::model::point<float, 2, bg::cs::cartesian> point;
typedef bg::model::box<point> box;
typedef std::pair<box, unsigned> value;
bgi::rtree< value, bgi::quadratic<16> > rtree1;
//... create first rtree
bgi::rtree< value, bgi::quadratic<16> > rtree2;
//... create second rtree
std::vector<value> result_s;
rtree1.query(bgi::intersects(rtree2), std::back_inserter(result_s));
// At this point result_s should contain elements of rtree1 that intersect with rtree2
是否有可能这样的事情,或者我只能对相同类型的 rtree 模板元素的元素执行查询?
我认为你的意思是所谓的"空间连接"。朴素的方法将遍历较小树的所有元素,并对较大的树执行矩形查询。对此有一些研究,只需 scholar.google.com 搜索"空间连接"。
我不认为任何高级方法都比我上面描述的天真方法好得多,但我没有了解该主题的最新情况。
相关文章:
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 计算所有对之间的曼哈顿距离
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米
- 是否有一种标准方法来计算两个 asctime() 值之间的天数
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 对于C++随机访问迭代器(矢量迭代器),迭代器之间的差异是如何计算的?
- 为什么 2 个双精度值之间的差值计算错误?
- C++和Lua之间的简单数学计算不同
- 如何计算大小为 1000 x 1000 的 2D 数组中 2 个元素之间的步幅?C++
- 计算每个维度的两个 3D 矢量之间的角度
- 计算两个uint8_t变量之间差值的最快方法是什么?
- 如何更有效地计算n个字符串之间的不匹配分数?
- 大括号和括号之间的参数计算顺序
- 如何计算两个负整数 c++ 之间的总和
- 为什么CRC计算在C和C 版本之间有所不同
- 如何获得OpenGL在给定高度级别之间计算的值
- C++:对迭代器之间计算距离的类型感到困惑
- c++ |在两个特定点之间计算文件中的行数
- 如何在C++中的正整数和负整数之间计算IF语句中的bool