[geos-devel] Progress on #837 - TopologyException in UnaryUnion
Sandro Santilli
strk at kbt.io
Wed Apr 17 08:17:23 PDT 2019
On Wed, Apr 17, 2019 at 08:01:43AM -0700, Martin Davis wrote:
> (Kudos to you for finding the failing test case. Was that just by chance,
> or would you be able to give the new potential fix a good workout?)
I think it was reported by a user of PostGIS Topology, where unions is
used heavily. I probably just reduced the testcase. No time to stress
new implementation out (but build PostGIS Topology, it's so easy to
get exceptions ! :)
> But... I think there is a slim possibility that:
> (a) The envelope does not change
> (b) The union moves a line segment slightly (due to snapping or simply by
> having a new node introduced)
> (c) There is a geometry which lies just outside the overlap extent which is
> close enough to the changed segment that it is now intersected
By "is now intersected" in (c) you mean it is moved by
snapping/precision-reducing heuristics in further unioning ?
If that's the case, can't we check envelope intersection again
afterwards ?
> It might be possible to come up with a synthetic test case to demonstrate
> this (perhaps using a fixed precision mode, which tends to highlight these
> kinds of issues).
It'd be great to try hard to break it :)
> One further test would be to compare all the line segments of the union
> which lie outside the overlap extent. If they have not changed then there
> should be no risk of an intersection with the other outside polygons. I
> think this should be significantly faster than doing the full union. I'l
> try working that up and see what the impact is.
Thank you, it's great to see you full speed on GEOS !
--strk;
More information about the geos-devel
mailing list