[PostGIS] #5782: TopoGeo_addLinestring corrups topology: adjacent edges 33 and -32 bind different face (1 and 0)
PostGIS
trac at osgeo.org
Wed Sep 25 03:11:39 PDT 2024
#5782: TopoGeo_addLinestring corrups topology: adjacent edges 33 and -32 bind
different face (1 and 0)
--------------------------------+---------------------------
Reporter: Lars Aksel Opsahl | Owner: strk
Type: defect | Status: new
Priority: high | Milestone: PostGIS 3.4.4
Component: topology | Version:
Resolution: | Keywords:
--------------------------------+---------------------------
Comment (by strk):
Another small testcase focusing on how topology gets the containing face
of a newly added point wrong:
{{{
SELECT topology.DropTopology ('t5782');
SELECT topology.CreateTopology ('t5782');
-- Edge 1 (was: 3)
SELECT NULL FROM topology.TopoGeo_addLinestring('t5782',
'LINESTRING(18.00677727099686 69.0404005833497,18.006780950996863
69.04042744334969,18.00678831099686 69.0404811833497)');
-- Edge 2 (was: 4)
SELECT NULL FROM topology.TopoGeo_addLinestring('t5782',
'LINESTRING(18.00678831099686 69.0404811833497,18.006784630996860
69.04045431334970,18.00677727099686 69.0404005833497)');
-- Finds point to be inside the tiny face (wrong!)
SELECT NULL FROM topology.TopoGeo_addPoint('t5782',
'POINT(18.006691126034692 69.04048768506776)');
SELECT node_id, containing_face FROM t5782.node ORDER BY node_id;
}}}
Note that ValidateTopology won't catch the problem, but the last added
isolated node gets containing_face to be 1 instead of 0.
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5782#comment:17>
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