-
Notifications
You must be signed in to change notification settings - Fork 359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Structural repair of a multipolygon #1179
Comments
Note also that the PostGIS 3.2.0 Manual states in Section 8.6.4 ST_MakeValid
|
What does JTS do? In Geos, there are a couple of enumerators. The second one "Assumes that holes and shells are correctly categorized". https://libgeos.org/doxygen/geos__c_8h.html#acb2987c643bda31b1fcaecff8b62ce98 An MRX would be of great assistance. |
I've put code on gist.github.com |
That's why I wrote "the union of the structurally repaired polygons". Do you agree that this is different from what the PostGIS Manual states? Does the manual express a "should" or " must"? Do you know what other implementations of |
Yes, it's different. The manual should state what the semantics actually are, so it needs to be changed.
This is the RFC for the JTS implementation, which is used for the I'm not aware of any other implementations which subtract holes from an entire MultiPolygon, but there may well be some. It's a reasonable semantic, just not the one chosen. |
When I repair a polygon with a hole that sticks out with the structural option I get what I see in the first line. So it is boundary area minus hole area.
What is the formal definition of what happens when repairing a multipolygon which consists of two outer boundaries, and a hole in the first polygon sticking out of it and overlapping with the boundary of the second polygon of the multipolygon?
It does what we see in the second line, so it looks like the union of the structurally repaired polygons.
It could have been the union of the boundary areas minus the union of holes.
The text was updated successfully, but these errors were encountered: