[postgis-tickets] [PostGIS] #5293: toTopoGeom: corrupted topology: face xxx could not be constructed only from edges knowing about it (like edge yyy).

PostGIS trac at osgeo.org
Mon Nov 28 00:18:52 PST 2022


#5293: toTopoGeom: corrupted topology: face xxx could not be constructed only from
edges knowing about it (like edge yyy).
-----------------------+---------------------------
  Reporter:  strk      |      Owner:  strk
      Type:  defect    |     Status:  new
  Priority:  medium    |  Milestone:  PostGIS 3.4.0
 Component:  topology  |    Version:  master
Resolution:            |   Keywords:
-----------------------+---------------------------
Comment (by strk):

 Interesting fact: removing the edges reported as being the start of a ring
 with mixed-face labeling using the qgis-topo-edit plugin fixed the
 invalidity.

 ValidateTopology output before fixing things:
 {{{
             error            |  id1   | id2
 -----------------------------+--------+-----
  mixed face labeling in ring | -43601 |
  mixed face labeling in ring | -43501 |
  mixed face labeling in ring | -43264 |
 (3 rows)
 }}}

 With QGIS I've selected the 3 edges reported in column `id1` and hit the
 'delete edges' icon. The operation successfully removed all 3 edges (no
 complains about them being needed for any TopoGeometry) and at the end of
 that operation ValidateTopology runs clean:

 {{{
 toto=# select * from validatetopology('topo_uso_suolo');
 NOTICE:  Checking for coincident nodes
 NOTICE:  Checking for edges crossing nodes
 NOTICE:  Checking for invalid or not-simple edges
 NOTICE:  Checking for crossing edges
 NOTICE:  Checking for edges start_node mismatch
 NOTICE:  Checking for edges end_node mismatch
 NOTICE:  Checking for faces without edges
 NOTICE:  Checking edge linking
 NOTICE:  Building edge rings
 NOTICE:  Found 19141 rings, 15749 valid shells, 3392 valid holes
 NOTICE:  Constructing geometry of all faces
 NOTICE:  Checking faces
 NOTICE:  Checked 15749 faces
 NOTICE:  Checking for holes coverage
 NOTICE:  Finished checking for coverage of 3392 holes
 NOTICE:  Checking for node containing_face correctness
  error | id1 | id2
 -------+-----+-----
 (0 rows)

 Time: 14549.719 ms (00:14.550)
 }}}
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5293#comment:1>
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