I'm having an issue while using boost::geometry to find the intersection of
two specific polygons, and looking at the evidence in front of me I can't
help but think this might be a bug in the library.
The two polygons in question are:
POLYGON((16.8739 0.353458,8.80872e-14 5.50545e-15,0.266003 -12.6988,17.1399
-12.3454,16.8739 0.353458))
POLYGON((-4.53257e-19 2.16383e-17,9.99781 0.209424,10.1459
-6.86009,0.148086 -7.06952,-4.53257e-19 2.16383e-17))
Both of them look like two slightly rotated rectangles, first one being
bigger than the other. They intersect at their upper left corner.
In order to verify that these polygons CAN be intersected, I ran the
following SQL sentence through SQL Server Management Studio (17.9.1):
SELECT geometry::STGeomFromText('POLYGON((16.8739 0.353458,8.80872e-14
5.50545e-15,0.266003 -12.6988,17.1399 -12.3454,16.8739 0.353458))', 0)
.STIntersection(
geometry::STGeomFromText('POLYGON((-4.53257e-19 2.16383e-17,9.99781
0.209424,10.1459 -6.86009,0.148086 -7.06952,-4.53257e-19 2.16383e-17))', 0)
).STAsText()
The resulting WKT is:
POLYGON ((0.1480860710144043 -7.0695199966430664, 10.145899772644043
-6.8600900173187256, 9.997809886932373 0.20942401885986328, 0 0,
0.1480860710144043 -7.0695199966430664))
which looks about right for the requested intersection rectangle. SSMS
itself displays a nice rectangle when you remove ".STAsText()" from that
sentence.
However, when I tried to duplicate that result using the following program
using Visual Studio 2017 (15.9.8) to create an x64 console app, using boost
1.69 as a NuGet:
-----------------------------------------------------------------------------------------------------------------
#include