[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