I'm using Postgis 2.3. I have two touching geometries that I got from an overlay (ST_Difference) operation:
id | st_astext
3 | MULTIPOLYGON(((0 -2,0 4,3 4,6 1,0 -2)),((6 6,8 8,8 4,6 6)))
4 | POLYGON((2 6,7 9,7 7,6 6,7 5,7 0,4 0,6 1,4.33333333333333 2.66666666666667,5 4,2 6))
Yet when I check their intersection, I get not only linestrings, but also a polygon.
select st_AsText(ST_Intersection(a.the_geom, b.the_geom)) from renovation a, renovation b where a.id=4 and b.id=3;
GEOMETRYCOLLECTION(LINESTRING(7 7,6 6),LINESTRING(6 6,7 5),LINESTRING(4 0,6 1),POLYGON((6 1,4.33333333333333 2.66666666666667,4.33333333333333 2.66666666666667,6 1)))
This polygon is very weird; it's got two equal vertices, yet it is valid, and it has a non-zero area.
How does this happen, and how can I prevent that from happening or filter this unnecessary polygon out?