[Boost-bugs] [Boost C++ Libraries] #12413: boost::geometry::index::rtree.remove() with Geographic coordinate system can fail

Subject: [Boost-bugs] [Boost C++ Libraries] #12413: boost::geometry::index::rtree.remove() with Geographic coordinate system can fail
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-08-26 09:19:47


#12413: boost::geometry::index::rtree.remove() with Geographic coordinate system
can fail
---------------------------+------------------------------
 Reporter: andydev2k2k@… | Type: Bugs
   Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.61.0
 Severity: Showstopper | Keywords:
---------------------------+------------------------------
 example code:



 {{{
 #include <boost\config\compiler\visualc.hpp>
 #include <boost/geometry/index/rtree.hpp>
 #include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 namespace bgi = boost::geometry::index;

 namespace bg = boost::geometry;

 typedef bg::model::point<double, 2, bg::cs::geographic<bg::degree> >
 Geo2DPoint;
 typedef std::pair< Geo2DPoint, unsigned > RTreeValue;
 typedef bgi::rtree<RTreeValue, bgi::quadratic<5> > rtree_t;
 typedef boost::geometry::model::box< Geo2DPoint > GeoBox;

 int main()
 {
         rtree_t rtree;
         Geo2DPoint p;

         p.set<0>( -1.558444 );
         p.set<1>( 52.38664 );
         rtree.insert( std::make_pair( p, 792) );

         p.set<0>( -1.558444 );
         p.set<1>( 52.38664 );
         rtree.insert( std::make_pair( p, 793 ) );


         p.set<0>( -2.088824 );
         p.set<1>( 51.907406 );
         rtree.insert( std::make_pair( p, 800 ) );

         p.set<0>( -1.576363 );
         p.set<1>( 53.784089 );
         rtree.insert( std::make_pair( p, 799 ) );

         p.set<0>( -77.038816 );
         p.set<1>( 38.897282 );
         rtree.insert( std::make_pair( p, 801 ) );

         p.set<0>( -1.558444 );
         p.set<1>( 52.38664 );
         rtree.insert( std::make_pair( p, 794 ) );

         p.set<0>( -0.141588 );
         p.set<1>( 51.501009 );
         rtree.insert( std::make_pair( p, 797 ) );

         p.set<0>( -118.410468 );
         p.set<1>( 34.103003 );
         rtree.insert( std::make_pair( p, 798 ) );

         p.set<0>( -0.127592 );
         p.set<1>( 51.503407 );
         rtree.insert( std::make_pair( p, 796 ) );

         size_t num_removed = rtree.remove( std::make_pair( p, 796 ) ); //
 Here, num_removed should be 1 but it is 0

         return 0;
 }

 }}}


 as the comment says, num_removed should be 1 but it is 0

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/12413>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC