]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/doc/index/src/examples/rtree/iterative_query.cpp
1 // Boost.Geometry Index
5 // Copyright (c) 2011-2014 Adam Wulkiewicz, Lodz, Poland.
7 // Use, modification and distribution is subject to the Boost Software License,
8 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
11 //[rtree_iterative_query
13 #include <boost/geometry.hpp>
14 #include <boost/geometry/geometries/point.hpp>
15 #include <boost/geometry/geometries/box.hpp>
17 #include <boost/geometry/index/rtree.hpp>
22 namespace bg
= boost::geometry
;
23 namespace bgi
= boost::geometry::index
;
27 typedef bg::model::point
<double, 2, bg::cs::cartesian
> point
;
29 typedef bgi::rtree
< value
, bgi::linear
<16> > rtree_t
;
31 // create the rtree using default constructor
35 for ( double f
= 0 ; f
< 10 ; f
+= 1 )
38 rtree
.insert(point(f
, f
));
44 // iterate over nearest Values
45 for ( rtree_t::const_query_iterator
46 it
= rtree
.qbegin(bgi::nearest(pt
, 100)) ;
50 double d
= bg::distance(pt
, *it
);
52 std::cout
<< bg::wkt(*it
) << ", distance= " << d
<< std::endl
;
54 // break if the distance is too big
57 std::cout
<< "break!" << std::endl
;