[PostGIS] #5782: XX000: Corrupted topology: adjacent edges 33 and -32 bind different face (1 and 0)

PostGIS trac at osgeo.org
Tue Sep 24 02:06:57 PDT 2024


#5782: XX000: Corrupted topology: adjacent edges 33 and -32 bind different face (1
and 0)
--------------------------------+---------------------------
  Reporter:  Lars Aksel Opsahl  |      Owner:  pramsey
      Type:  defect             |     Status:  new
  Priority:  high               |  Milestone:  PostGIS 3.5.0
 Component:  postgis            |    Version:
Resolution:                     |   Keywords:
--------------------------------+---------------------------
Comment (by strk):

 Confirmed, adding the last point of incoming line finds edge 3 to be the
 closest to it while instead edge 4 would be closest:

 {{{
 _lwt_AddPoint:6559] Adding point: POINT(18.006691126034692
 69.04048768506776)
 lwt_GetFaceContainingPoint:7502] Closest segment on edge 3 is 1 (dist
 9.71684e-05)
 lwt_GetFaceContainingPoint:7505] Closest segment on edge 3 is
 LINESTRING(18.0068 69.0404, 18.0068 69.0405)
 lwt_GetFaceContainingPoint:7642] Closest point is NOT a node
 lwt_GetFaceContainingPoint:7760] Closest point is internal to closest
 segment, calling
 lw_segment_side((18.0068,69.0404),(18.0068,69.0405),(18.0067,69.0405)
 lwt_GetFaceContainingPoint:7770] Side of closest segment query point falls
 on: -1 (left)
 }}}

 I guess the code could be made more robust to check that the first and
 last node of a line being added are found to be on the same face or throw
 an exception if that's not the case
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5782#comment:8>
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