#include<boost/geometry.hpp>#include<boost/geometry/geometries/point.hpp>#include<boost/geometry/geometries/box.hpp>#include<boost/geometry/index/rtree.hpp>// just for output#include<iostream>namespacebg=boost::geometry;namespacebgi=boost::geometry::index;intmain(){typedefbg::model::point<double,2,bg::cs::cartesian>point;typedefpointvalue;typedefbgi::rtree<value,bgi::linear<16>>rtree_t;// create the rtree using default constructorrtree_trtree;// create some valuesfor(doublef=0;f<10;f+=1){// insert new valuertree.insert(point(f,f));}// query pointpointpt(5.1,5.1);// iterate over nearest Valuesfor(rtree_t::const_query_iteratorit=rtree.qbegin(bgi::nearest(pt,100));it!=rtree.qend();++it){doubled=bg::distance(pt,*it);std::cout<<bg::wkt(*it)<<", distance= "<<d<<std::endl;// break if the distance is too bigif(d>2){std::cout<<"break!"<<std::endl;break;}}return0;}
Статья Iterative query раздела Chapter 1. Geometry Examples может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.