[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