[postgis-tickets] [PostGIS] #5568: Postgis Topology "mixed face labeling in ring | -267 | [NULL]"

PostGIS trac at osgeo.org
Mon Oct 9 02:39:47 PDT 2023


#5568: Postgis Topology  "mixed face labeling in ring | -267 | [NULL]"
--------------------------------+----------------------------
  Reporter:  Lars Aksel Opsahl  |      Owner:  strk
      Type:  defect             |     Status:  new
  Priority:  medium             |  Milestone:  PostGIS 3.0.10
 Component:  topology           |    Version:  3.0.x
Resolution:                     |   Keywords:
--------------------------------+----------------------------
Comment (by strk):

 This is the incoming line (semitransparent purple) and the starting
 topology:
 [[Image(starting_condition.png)]]

 The incoming line forms a new shell (counterclockwise ring) at its top
 side.
 The face previously occupying that space was the universal face.
 The code goes to find all edges (forward and backward) that need be update
 to reflect the new face.

 > New face is on the inside of the ring, updating forward edges in new
 ring

 Of 102 edges found to interesect the new face bbox and having the
 universal face on either side, 9 are found to bind the new face:

  - 3 edges are found to have the new face on the left: 161, 160 and 252
  - 6 edges are found to have the new face on the right: 22, 28, 282, 110,
 109, 217

 Now, looking with my eyes what QGIS renders as the topology, it looks to
 me that edges 160 and 161, found by code as binding the new face, cannot
 possibly both bind the new face as they instead form a face by themselves,
 a very very tiny face:

 [[Image(tiny_face_bound_by_160_161.png​)]]

 I bet the problem thus lying in the code that given a set of edges tries
 to figure out if they bind or not the new face, and it's definitely a
 robustness issue.

 The ValidateTopology correctly finds that one of those two edges, part of
 a *different* ring, is, after the update, advertised to have not face 0 on
 its left side anymore, but another face, contraddicting other edges in its
 ring.
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5568#comment:5>
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