Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OverlayNG produces obviously incorrect results in some situations #1000

Open
dr-jts opened this issue Aug 21, 2023 · 1 comment
Open

OverlayNG produces obviously incorrect results in some situations #1000

dr-jts opened this issue Aug 21, 2023 · 1 comment

Comments

@dr-jts
Copy link
Contributor

dr-jts commented Aug 21, 2023

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).

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
@dr-jts dr-jts changed the title OverlayNG produces wildly incorrect results in some situations OverlayNG produces obviously incorrect results in some situations Aug 21, 2023
@grimsa
Copy link
Contributor

grimsa commented Oct 1, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants