feat: implement Validify
repair trait
#1120
Closed
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.
Description
While discouraging the handling of invalid geometries and prioritizing the maintenance of geometric validity as a fundamental principle, it is recognized that geometries may occasionally deviate from perfection. In such instances, we have to deal with checking the geometry and repairing it all on our own. That's why it's time for a trait in
geo
which does the job for us.This pull request introduces a new feature by implementing the
Validify
for the first two candidates: Self intersectingPolygon
s andMultiPolygon
s. The Validity trait serves to repair these invalid geometries by splitting them up into smaller polygons which fulfill the implicit invariants.Changes Made
Validify
traitsplit_into_valid
method on the trait and implement it forPolygon
andMultiPolygon
Usage Example
Testing
Validify
trait and methods used for the first implsDocumentation
Document everything about the
Validify
trait quiet heavily for the afterworldI agree to follow the project's code of conduct.
I added an entry to
CHANGES.md
if knowledge of this change could be valuable to users.Usage examples in trait docs