Ticket #459 (new defect)

Opened 22 months ago

Last modified 20 months ago

Union fails to fully node input linework

Reported by: strk Owned by: geos-devel@…
Priority: major Milestone: 3.4.0
Component: Default Version: 3.3.0
Severity: Unassigned Keywords:
Cc:

Description

Performing the union between the boundary of the polygon and the line reported in  http://trac.osgeo.org/postgis/ticket/1115 results in not-fully-noded output.

JTS was reported to work:  http://lists.osgeo.org/pipermail/geos-devel/2011-July/005342.html

Change History

Changed 22 months ago by strk

My latest finding is that the Union operation triggered a TopologyException? thus entered the heuristics used to reduce precision. In GEOS this is first attempting to compute the union with a version of the input geometries having common bits removed and then re-adding the bits in the result.

So my current assumption is that the noding is lost during re-introduction of the bits. I've already seen similar cases in the past, where re-adding bits resulted in the constitution of an invalid geometry. Indeed passing the result again trough an union makes it properly noded (evidently because on this second union operation there's no TopologyException? being thrown).

JTS does SnapRounding? as first heuristic, which indeed gives a fully noded result at first try. If we did the same we'd fail on two other known cases: bug #360 and bug #392.

My best bet here is to run a noding test at the end of common bits re-addition and continue trough the heuristics methods list if it fails...

Changed 20 months ago by strk

  • milestone changed from 3.3.1 to 3.4.0

This is a design limit, won't be handled in a bugfix release

Note: See TracTickets for help on using tickets.