locationtech/jts

Summary: OverlayNG failures

dr-jts opened this issue · 1 comments

dr-jts commented

This is an umbrella issue for various bug reports about failure cases in OverlayNG operations.

The cases always (?) involve nearly-coincident linework (either in a single input or between inputs). The result of overlay operations is obviously incorrect (i.e. it is drastically different from the expected result).

  • shapely/shapely#1871 - the intersection of two non-overlapping polygons with almost coincident linework produces an obviously incorrect result
image image

Previously an area-check heuristic was added in #812, but this does not handle all cases. Any fix should be tested to see if it handles the cases resolved by that fix (shapely/shapely#1216, GEOS-1144.

Options for fixing:

  • add a heuristic sanity check based on the envelopes of the inputs (analogous to the heuristic area check). This will not catch all cases, however
  • use a more expensive area-based check, utilizing the IntersectionArea approach. This should be (almost?) fully robust, at the cost of decreased performance
grimsa commented

There is one more issue with OverlayNG area heuristic check: #951 - mentioning it here for visibility just in case it is related.