[PostGIS] #5862: Postgis topology, silently craating topo edge crosses edge , mixed face labeling in ring

PostGIS trac at osgeo.org
Wed Mar 19 11:26:52 PDT 2025


#5862: Postgis topology, silently craating topo edge crosses edge , mixed face
labeling in ring
--------------------------------+------------------------
  Reporter:  Lars Aksel Opsahl  |      Owner:  strk
      Type:  defect             |     Status:  new
  Priority:  high               |  Milestone:
 Component:  topology           |    Version:  master
Resolution:                     |   Keywords:  robustness
--------------------------------+------------------------
Comment (by strk):

 Extreme reduction:
 {{{
 SELECT NULL FROM topology.DropTopology('t5862');
 SELECT NULL FROM topology.CreateTopology('t5862');
 SELECT NULL FROM topology.TopoGeo_addLinestring('t5862',
 'LINESTRING(
 22.780107846871616 70.70515928614921,
 22.779899976871615 70.7046262461492
 )');
 SELECT NULL FROM topology.TopoGeo_addLinestring('t5862',
 'LINESTRING(
 22.79217056687162 70.70247684614921,
 22.779969266871618 70.70480392614921,
 22.780038556871617 70.7049816061492,
 22.796764346871615 70.7044482361492
 )');

 SELECT * FROM validatetopology('t5862');

 BEGIN;
 SELECT array_agg(x) as last_line_edges FROM
 topology.TopoGeo_addLinestring('t5862',
 'LINESTRING(
 22.780038556871617 70.7049816061492,
 22.789676156871618 70.7072799361492
 )')
 x;
 SELECT * FROM validatetopology('t5862');
 }}}

 How it looks:

 [[Image(casesimp1.png)]]

 The purple edge enters the topology first, the green edge second, and does
 not result in a node being created when they are very close each other.
 The yellow line is the one added last which results in silent topology
 corruption
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5862#comment:4>
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