[postgis-tickets] [PostGIS] #3464: ERROR: lwt_ChangeEdgeGeom could not construct face X, on the left of edge Y

PostGIS trac at osgeo.org
Wed Feb 24 02:38:12 PST 2016


#3464: ERROR: lwt_ChangeEdgeGeom could not construct face X, on the left of edge Y
-----------------------+----------------------------
  Reporter:  strk      |      Owner:  strk
      Type:  defect    |     Status:  new
  Priority:  medium    |  Milestone:  PostGIS Future
 Component:  topology  |    Version:  trunk
Resolution:            |   Keywords:  robustness
-----------------------+----------------------------

Comment (by strk):

 The line being added crosses the existing edges 4 times:
  1. Crosses the upper edge near its starting node going inside the face
  2. Crosses the lower edge near its starting node going outside the face
  3. Crosses the lower edge going inside the face near its centroid
  4. Crosses the lower edge going outside the face near its centroid

 Theoretically this would require splitting the line into 5 parts, but the
 internal noding step splits the line into 4 parts instead, using a
 _single_ node in the upper side, rather than 2:
 {{{
 psql:crash_smaller.sql:2: DEBUG:  [lwgeom_topo.c:lwt_AddLine:5876]
 Finally-noded: MULTILINESTRING((634446.780374345
 4829591.16223176,634451.780306051 4829559.16259395),(634451.780306051
 4829559.16259395,634451.78032304 4829559.16248522,634469.462472354
 4829541.48032363),(634469.462472354 4829541.48032363,634485.780040461
 4829525.1627442,634485.781473602 4829525.16065963),(634485.781473602
 4829525.16065963,634488.530017153 4829521.16277512))
 }}}


 I hadn't checked if this is due to snap-rounding happening on the GEOS
 side but for sure it must not be easy (if possible at all) to represent
 such a small line. I cannot use QGIS to measure the distance between the
 edges near the intersection point as it doesnt' let me zoom in more than
 50,000:1, and at that scale I cannot see the edges ever disjoint.

--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/3464#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