[postgis-devel] Autofix and retry for GEOS overlay ops

Paul Ramsey pramsey at cleverelephant.ca
Sun Feb 4 07:07:26 PST 2018


I'm fine w/ this. I think the population of people who just want an
answer is so much larger than the population who want a perfectly
correct answer it's worth it. The only nit is that I think sometimes
validity fixing will make a real big and noticeable mistake, so the
answer will be visibly wrong. I think still, this is so rare that the
population of people for whom things are better will dwarf the
population of people who get an undesireable answer.
P

On Sun, Feb 4, 2018 at 7:00 AM, Darafei "Komяpa" Praliaskouski
<me at komzpa.net> wrote:
> Hi,
>
> I've been debugging an issue with ST_Subdivide on one of our polygons. It
> traced down to issue in GEOS, and as a part of fix I had to replace
> ClipByRect with normal Intersection call. When fixing the tests for old
> ClipByRect, that specifically tested some invalid geometries it can process,
> I came up with this logic:
>
> https://github.com/postgis/postgis/pull/202/files#diff-c3dac68eb856b0a0554707e2ffcfbf17R648
>
> which boils down to "try intersecting, if failed, MakeValid the inputs, try
> intersecting, fail if failed".
>
> This does not make process any slower for anybody now, as current case "we
> got it done from first attempt" is not prepended by any additional validity
> check.
>
> Thinking of hours spent catching some invalid geometry generated by a chain
> of different GEOS operations, I think such change would be beneficial for
> all overlay operations. In case someone gets not a desired result, they can
> go back to checking their inputs with ST_IsValid, and performing a deep
> manual fix, but simple issues like bowties will start simply working.
>
> Thoughts?
>
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-devel


More information about the postgis-devel mailing list