GEOSTopologyPreserveSimplify can return invalid geometry (see attached 47 test cases). Our current fix is to check if the value returned is valid, if not, we re-run with tolerance / 10 until we get a valid shape. Our default tolerance is 0.01 if that's of relevance.
GEOSTopologyPreserveSimplify
can return invalid geometry (see attached 47 test cases). Our current fix is to check if the value returned is valid, if not, we re-run withtolerance / 10
until we get a valid shape. Our default tolerance is0.01
if that's of relevance.47 Test fixtures in .geojson files that cause GEOSTopologyPreserveSimplify to return invalid geometry: https://github.com/user-attachments/files/17261209/network_as_polygon_edgecase.zip
tree -sh
output of the zip:A test harness with
pytest
testing this functionality viaShapely
is available here: https://github.com/shapely/shapely/issues/2165Related to: https://github.com/shapely/shapely/issues/2165