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

Improve CascadedPolygonUnion correctness with OverlapUnion #429

Merged
merged 4 commits into from
May 9, 2019

Conversation

dr-jts
Copy link
Contributor

@dr-jts dr-jts commented May 9, 2019

This addresses an issue in CascadedPolygonUnion where the union can move linework slightly and cause the combining step to create invalid geometry.

The overlapping union approach is refactored to the new class OverlapUnion, and a new test for changed line segments added to detect if a full union needs to be performed.

This should fix GEOS issue 837 while still providing good performance.

Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
@dr-jts dr-jts merged commit e9cf033 into locationtech:master May 9, 2019
@dr-jts dr-jts deleted the improve-cascaded-union branch May 9, 2019 21:28
strk pushed a commit to libgeos/geos that referenced this pull request Sep 16, 2019
New approach to overlap handling, to deal with robustness issues while preserving more performance than the old GEOS fix.
Add in fallback to buffer(0) when unary union fails, for more fault tolerance on hard cases.
Apply some const correctness features when building geometries from vector<const *Geometry>, as many constructors must do (from @dbaston)

locationtech/jts#470
locationtech/jts#429
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant