ST_CoverageClean() - adding initial support #683
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi there! I hope you've been keeping well since I last dropped a PR on you out of the blue :) Amazing work on the recent Spatial updates lately btw, I've been constantly blown away by the table join join performance we now have at our fingertips thanks to you :-D
This PR implements 3 functions for the
CoverageClean
functionality recently added toGEOS
:GEOMETRY ST_CoverageClean (geoms GEOMETRY[], snapDistance DOUBLE, maxWidth DOUBLE)
GEOMETRY ST_CoverageClean (geoms GEOMETRY[], snapDistance DOUBLE)
GEOMETRY ST_CoverageClean (geoms GEOMETRY[])
Somewhat bizarrely, I've been unable to replicate the CoverageCleanerTest.cpp tests from libgeos with either this of extension or the
geosop
tool. The extension code does align with output fromgeosop
though.Future nice-to-haves:
OverlapMergeStrategy
: I couldn't work out how to implement a 4-parameter function call in the same style as the other GEOS functions. I also got a bit concerned about unintended consequences of using enums from other packages.vcpkg.json
- feels like a nasty bodge job.ST_CoverageClean_Agg()
versions of the above.I'm very happy to work on any or all of the above with you btw, if you can share any guidance with me I'm all ears on making this function fly.
Thanks again!