Recent versions of GEOS use OverlayNG (NG stands for New Generation) for set operations between geometries (Intersection, Union, etc.). With the introduction of OverlayNG, invalid geometries are no longer frequently produced by GEOS. They are either non-existent, or very rare.
Before this change, the simplefeatures GEOS wrapper validates results from GEOS.
This feels like a misalignment:
Validation isn't free, so validating GEOS results seems like the wrong default.
The GEOS wrapper is doing more than strictly wrapping the GEOS library (it is also validating the result). This blurs the lines between what simplefeatures is doing and what GEOS is doing.
This change removes that validation. Users can of course still validate manually by calling the Validate method on the result.
Check List
Have you:
Added unit tests? No, because it's removal of an existing feature.
Add cmprefimpl tests? (if appropriate?) N/A.
Updated release notes? (if appropriate?) Not yet. There will be a large amount of changes for this release, so I'll add release notes at the end.
Please paste benchmark results here. The benchmarks can be run using the
run_benchmarks.sh script.
Not much to see here. All benchmark results are the same, except for benchmarks for GEOS operations which are now faster (due to the change in validation behaviour).
Description
Recent versions of GEOS use OverlayNG (NG stands for New Generation) for set operations between geometries (Intersection, Union, etc.). With the introduction of OverlayNG, invalid geometries are no longer frequently produced by GEOS. They are either non-existent, or very rare.
Before this change, the
simplefeatures
GEOS wrapper validates results from GEOS.This feels like a misalignment:
Validation isn't free, so validating GEOS results seems like the wrong default.
The GEOS wrapper is doing more than strictly wrapping the GEOS library (it is also validating the result). This blurs the lines between what simplefeatures is doing and what GEOS is doing.
This change removes that validation. Users can of course still validate manually by calling the
Validate
method on the result.Check List
Have you:
Added unit tests? No, because it's removal of an existing feature.
Add cmprefimpl tests? (if appropriate?) N/A.
Updated release notes? (if appropriate?) Not yet. There will be a large amount of changes for this release, so I'll add release notes at the end.
Related Issue
Benchmark Results
run_benchmarks.sh
script.Not much to see here. All benchmark results are the same, except for benchmarks for GEOS operations which are now faster (due to the change in validation behaviour).
bench_results.txt