FIX: make hole multipolygon valid before removing from projected polygon #2521
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.
Rationale
When a polygon with multiple holes is projected, the projected holes may become so close that they can't form a valid MultiPolygon as they touch along a line. In this case, we can still create the holes one by one. Taking the first example from #2176 (comment), and adding coastlines for reference,
I now get

Setting the central latitude to -30 still results in a failure, but this is very sensitive to the exact number and the user will be able to work around it by setting central latitude to e.g. -29.9999:
Implications
Making the holes one by one is slow compared with using the MultiPolygon: I tried removing the try-except and always removing them in the loop. This benchmark took 18 times longer: