id summary reporter owner description type status milestone component version severity resolution keywords cc 9828 boost::geometry::union_(...) creates redundant closing point Volker Schöch Barend Gehrels "Polygons created by boost::geometry algorithms should conform to the same rules as the input. In the following example, boost::geometry::union_ takes two simple, non-empty rectangular polygons and creates a polygon with a redundant closing point. My polygon type is oriented '''counter-clockwise''' and '''not closed''', my point type is based on '''int'''. This is the data used as input to union: {{{ _TPolygon const polygon = _TPolygon(""MULTIPOLYGON(((3398 1759,3592 1759,3592 1893,3398 1893)))"") | _TPolygon( ""MULTIPOLYGON(((3592 1893,3592 1759,3910 1759,3910 1893)))"" ); }}} This is the resulting multi-polygon with the redundant closing point: {{{ MULTIPOLYGON(((3592 1893,3398 1893,3398 1759,3592 1759,3910 1759,3910 1893,3592 1893))) }}} This is my code that wraps boost::geometry to implement the operator used above: {{{ template template _TPolygon< T > _TPolygon< T >::operator|(Geometry const& geometry) const { _TPolygon< T > polygonOut; boost::geometry::union_(*this, geometry, polygonOut); // the following line fixes the problem but should not be necessary //boost::geometry::correct( polygonOut ); return polygonOut; } }}} " Bugs closed Boost 1.56.0 geometry Boost 1.55.0 Problem fixed union, multi-polygon, polygon, correct mkaravel