[PostGIS] #5699: ERROR: XX000: SQL/MM Spatial exception - geometry crosses an edge

PostGIS trac at osgeo.org
Mon Mar 25 10:33:20 PDT 2024


#5699: ERROR:  XX000: SQL/MM Spatial exception - geometry crosses an edge
--------------------------------+---------------------------
  Reporter:  Lars Aksel Opsahl  |      Owner:  strk
      Type:  defect             |     Status:  assigned
  Priority:  medium             |  Milestone:  PostGIS 3.4.3
 Component:  topology           |    Version:  3.4.x
Resolution:                     |   Keywords:  robustness
--------------------------------+---------------------------
Comment (by strk):

 A probably more severe issue here is that we ALLOW an invalid topology to
 be created. This should supposedly not happen as the code is theoretically
 checking for all these invalid conditions before accepting the change.

 The relevant snippt of the log is this:
 {{{
 sql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:682]
 lwt_be_getEdgeWithinBox2D returned 3 edges
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:713]
 Edge 5 converted to GEOS
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:726]
 Edge 5 relate pattern is FF1F00102
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:713]
 Edge 2 converted to GEOS
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:726]
 Edge 2 relate pattern is FF1F00102
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:713]
 Edge 1 converted to GEOS
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:726]
 Edge 1 relate pattern is F01FF0102
 psql:break.sql:10: DEBUG:  [topo/lwgeom_topo.c:_lwt_CheckEdgeCrossing:792]
 No edge crossing detected amongh the 3 candidate edges
 }}}

 The last edge (Edge 1) is clearly having the a boundary-interior
 intersection but the code is not considering that as problematic, while it
 IS, in this case.
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5699#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