[PostGIS] #5868: Add Function to Detect Valid Polygons with Point Touching Rings
PostGIS
trac at osgeo.org
Thu Mar 20 08:39:24 PDT 2025
#5868: Add Function to Detect Valid Polygons with Point Touching Rings
--------------------------+---------------------------
Reporter: gravitystorm | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 3.5.3
Component: postgis | Version: 3.4.x
Keywords: |
--------------------------+---------------------------
Certain functions are not implemented for valid polygons with point
touching rings (see https://trac.osgeo.org/postgis/ticket/5867).
For some use-cases, it would be handy if there was a function that could
be used to detect such polygons ahead of time, in order to handle them
separately. I haven't been able to find any existing postgis function that
does this, but if I've missed one please let me know.
With such a function, you could choose to ignore these polygons, e.g.
{{{
select CG_StraightSkeleton(geom)
from table
where !ST_PolygonHasPointTouchingRing(geom)
}}}
Alternatively, you could buffer only the geometries that have point
touching rings, without buffering the vast majority that don't, e.g.
{{{
select CG_StraightSkeleton(
case when ST_PolygonHasPointTouchingRing(geom)
then st_buffer(geom, 0.0001)
else geom
end)
from table
}}}
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5868>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list