[postgis-devel] [PostGIS] #832: Wrong line from ST_Difference

PostGIS trac at osgeo.org
Wed Feb 16 01:26:29 PST 2011


#832: Wrong line from ST_Difference
------------------------+---------------------------------------------------
  Reporter:  aperi2007  |       Owner:  pramsey      
      Type:  defect     |      Status:  closed       
  Priority:  medium     |   Milestone:  PostGIS 2.0.0
 Component:  postgis    |     Version:  trunk        
Resolution:  invalid    |    Keywords:               
------------------------+---------------------------------------------------
Changes (by aperi2007):

  * status:  new => closed
  * resolution:  => invalid


Comment:

 I try ST_IsValid(..)
 MULTILINESTRING((50 50,50 50),(50 150,50 200))

 gasp, Is valid !

 I wrong guess because I know these other was invalid:

 ST_IsValid(ST_GeomFromText('LINESTRING(50 50,50 50)')) => false
 and also
 ST_IsValid(ST_GeomFromText('MULTILINESTRING((50 50,50 50))')) => false

 so ST_IsValid() give that
 MULTILINESTRING((50 50,50 50),(50 150,50 200))  is valid
 meanwhile
 MULTILINESTRING((50 50,50 50)) is not valid

 ok, because "De gustibus non disputandum est"

 I return to the ticket :)

 Perhaps is better I explain better because I think this is a problem.

 Infact running this complex query
 on a windows machine with postgres 9.0.3 and postgis 2.0.0 trunk

 {{{
 select
  id,
  st_intersection(b.geom,st_exteriorring(a.geom)),
  b.geom
 from
  table_polygons as a,
  table_linestrings as b
 where
  a.id = b.id
  and
  st_containsproperly(a.geom,b.geom)=false
  and
  st_crosses(b.geom,a.geom)=true
 ;
 }}}

  I'm having this error:

 ERROR: lwcollection_construct: mixed dimension geometries: 2/0

 analyzing the data I guess the problem was generated
 from
 st_intersection(b.geom,st_exteriorring(a.geom))

 when encounter a linestring that return a point exactly on the boundary of
 a polygon.
 So I see these problem and perhaps wrongly open a ticket on the problem
 of
 MULTILINESTRING((50 50,50 50),(50 150,50 200))

 I think is preferrable to close this ticket and open a specific ticket.

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/832#comment:2>
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