[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
Thu Jun 1 06:38:24 PDT 2023


#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):

 I've split your script in a "prepare" and a "test" phase, whereas the
 "prepare" creates the topology up to the point in which you test it for
 validity and it passes it, and the "test" attempts to add the last line,
 failing with the message above and rolls it back.

 In this was I was able to further reduce the dataset and I've attached a
 smaller topology dump file ( to be used with pgtopo_import ) to create the
 starting condition.
 https://trac.osgeo.org/postgis/attachment/ticket/5293/postgis_ticket_5293_topo.pgdump

 Next I'm looking at the found-to-be-valid topology via QGIS and
 immediately realizing there are a lot of nearly cohincident edges, so
 close each other that QGIS itself is unable to show the gap. The Topology
 Viewer is capable of showing us the faces though, via the "face seed"
 layer, which I'm showing here:

 [[Image(tinyFaces.png)]]

 The edges referred to by my error message are showed here, with all the
 limits QGIS imposes (is unable to show the node, and to show the labels):

 [[Image(nearlyCoincidentEdges.png)]]

 Faces 52 and 45 are the "external" faces (not the tiny faces in between
 those two edges).

 I guess when the incoming line is noded with the existing lines those
 almost coincident edges are going to confuse the algorithms computing
 sides and order of edges around a node.

 The good thing is that on my system there's no corruption because the
 attempt to insert the last line fails instead. My system's versions:

 {{{

  POSTGIS="3.4.0dev 3.3.0rc2-902-g9ea7418ef" [EXTENSION] PGSQL="130"
 GEOS="3.12.0dev-CAPI-1.18.0" PROJ="9.1.1" LIBXML="2.9.13" LIBJSON="0.15"
 LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" TOPOLOGY
 }}}
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5293#comment:8>
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