[postgis-devel] [PostGIS] #972: ST_AddIsoEdge - give an error if containing_face is zero

PostGIS trac at osgeo.org
Sat May 21 15:11:58 PDT 2011


#972: ST_AddIsoEdge - give an error if containing_face is zero
-----------------------+----------------------------------------------------
 Reporter:  aperi2007  |       Owner:  strk         
     Type:  defect     |      Status:  new          
 Priority:  medium     |   Milestone:  PostGIS 2.0.0
Component:  topology   |     Version:  trunk        
 Keywords:             |  
-----------------------+----------------------------------------------------

Comment(by aperi2007):

 I see the code of ST_AddIsoEdge.

 I guess the error is due to the ST_GetFaceGeometry as report in the ticket
 #973.

 The error is in this piece of code:

 {{{
                 FOR rec IN EXECUTE 'SELECT topology.ST_GetFaceGeometry('
                         || quote_literal(atopology) ||
                         ',' || aface || ') as face'
                 LOOP
                         face := rec.face;
                 END LOOP;

                 --
                 -- Check acurve to be within face
                 --
 **HERE** -->    IF ! ST_Within(acurve, face) THEN
         RAISE EXCEPTION
         'SQL/MM Spatial exception - geometry not within face.';
                 END IF;


 }}}

 Because the ST_GetFaceGeometry return a record with a NULL geometry when
 the FACE is the UniverseFace (idface=0)
 the ST_Within(acurve, face) give an error.

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/972#comment:1>
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-devel mailing list