[postgis-tickets] [PostGIS] #5105: False topology invalidity returned in presence of dangling edgerings

PostGIS trac at osgeo.org
Sun Feb 27 14:03:49 PST 2022


#5105: False topology invalidity returned in presence of dangling edgerings
-----------------------+---------------------------
  Reporter:  strk      |      Owner:  strk
      Type:  defect    |     Status:  new
  Priority:  medium    |  Milestone:  PostGIS 3.3.0
 Component:  topology  |    Version:  master
Resolution:            |   Keywords:  reliability
-----------------------+---------------------------

Comment (by strk):

 Just to give more detail, here's the topology error being reported:
 {{{
 =# select * from test_invalidities ;
           error           | id1 |   id2
 --------------------------+-----+---------
  face has multiple shells |   0 | -850133
  face has multiple shells |   0 | -850131
 (2 rows)
 }}}

 The two rings, which are reported as being 2 "shells" of the same face
 (face 0), are formed by these edges:
 {{{
 =# select * FROM GetRingEdges('test', -850133);
  sequence |  edge
 ----------+---------
         1 | -850133
         2 |  850133
         3 |  850092
         4 |  850096
         5 | -850096
         6 | -850092
 (6 rows)
 =# select * FROM GetRingEdges('test', -850131);
  sequence |  edge
 ----------+---------
         1 | -850131
         2 |  850131
 (2 rows)
 }}}

 In both cases you can see that the rings are formed by the *same* edges
 being considered on both sides (3 edges for the first ring, 1 edge for the
 second ring). These should be considered "holes" for what concerns the
 ValidateTopology function, but are instead being considered "shells" due
 to the use of ST_IsPolygonCCW function on the polygon constructed by them.

-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5105#comment:6>
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