id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 10803,union algorithm returning invalid geometry,Volker Schöch ,Barend Gehrels,"My ""_intPolygon"" type is actually a multi-polygon, using a polygon type that is based on '''int''', oriented '''counter-clockwise''' and '''open''' (not closed). Please consider the following example: {{{ _intPolygon polygonA; boost::geometry::read_wkt(""MULTIPOLYGON(((3174 1374,3174 2886,1374 2886,1374 2139,3174 1374)))"", polygonA); // does not throw boost::geometry::correct(polygonA); // remove redundant closing point returned by wkt boost::geometry::is_valid(polygonA); // returns true _intPolygon polygonB; boost::geometry::read_wkt(""MULTIPOLYGON(((1374 1092,1734 1092,3174 2526,3174 2886,1374 2886,1374 1092)))"", polygonB); // does not throw boost::geometry::correct(polygonB); // remove redundant closing point returned by wkt boost::geometry::is_valid(polygonB); // returns true _intPolygon polygonC; boost::geometry::union_(polygonA, polygonB, polygonC); // polygonC = MULTIPOLYGON(((1374 809,1374 1092,1734 1092,3529 1718,3174 1374,3174 2526,3174 2886,1374 2886,1374 2139,1374 809))) boost::geometry::is_valid(polygonC); // returns FALSE boost::geometry::remove_spikes(polygonC); // polygonC = MULTIPOLYGON(((1374 1092,1734 1092,3529 1718,3174 1374,3174 2526,3174 2886,1374 2886,1374 2139,1374 1092))) boost::geometry::is_valid(polygonC); // still returns FALSE }}} May be related to #10661.[[BR]] May be related to #9828.",Bugs,closed,Boost 1.60.0,geometry,Boost 1.57.0,Regression,fixed,"union, multi-polygon, polygon",