[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