I am seeing a overlay_invalid_input_exception thrown from has_self_intersections when calling the union() operation. Does indicate an internal error, or have I not conditioned my input properly? My test is, taking the TIGER 2010 counties file for Alaska, and repeatedly calling union() on the polygons. There may be some issues that I can think of: 1) Island chains are represented as one big multi-ring polygon in the source shape file. When I convert to boost polygon, I set the first ring as the outer, and all others as inners.
You probably mean Boost.Geometry? For the rest, this might be erroneous. All islands should be separate outer rings in a multi polygon, if I understand you well.
2) Aleutians cross the 180-meridian. I am, however, taking steps to force all latitudes into the negative range, but that logic may need to be checked.
OK. If you encounter the problem after checking: 1: recheck your logic 2: get the wkt of the failing input 3: check this wkt 4: if you think the polygon is valid, so Boost.Geometry is incorrect, please report this and include the wkt in your report. besides this, if you are really going to buffer all these Alaska counties, that is a challenge for the not released code. You will find bugs or inexpected behaviour. Reports of these are welcome too. Please also then include the Wkt and buffer properties. Regards, Barend