[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