当前位置:   article > 正文

C++中空间搜索树rtree的使用_rtreec++

rtreec++

1 基础使用

(一)头文件

#include "mapmatch/r_tree.h" 
  • 1

(二)创建rtree

had::RTree<SDDBLink*, double, 2> _sdlink_geo_tree; //声明rtree
//创建rtree
for (auto iter_sdlink : map_sd_link) {
    auto sdlink = iter_sdlink.second;
    Point3D pt_min = sdlink->_geo_box_min;
    Point3D pt_max = sdlink->_geo_box_max;
    double min[2] = {pt_min.X, pt_min.Y};
    double max[2] = {pt_max.X, pt_max.Y};
    _sdlink_geo_tree.insert(min, max, sdlink);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(三)空间检索

double min[2] = {dot->geometry[0].X - 1e-3, dot->geometry[0].Y - 1e-3};
double max[2] = {dot->geometry[0].X + 1e-3, dot->geometry[0].Y + 1e-3};
auto ret = _sdlink_geo_tree.search(min, max);
for (auto sdlink : ret) {
    //撰写业务代码...
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/475984
推荐阅读