[postgis-devel] isvalid() error

strk at refractions.net strk at refractions.net
Sun Jan 16 00:58:19 PST 2005


On Fri, Jan 14, 2005 at 10:44:09PM -0500, Carl Anderson wrote:
> strk at refractions.net wrote:
> 
> >I personally use 3points polygon in visualizzatio apps, as
> >collapsed polygons still tell us where the original geometry
> >was, so they actually carry valid information (extent basicaly).
> >
> > 
> >
> <devils advocate>
>    is not this a case where a Geometry Collection would be useful.
>      collection(POLYGON, LINESTRING, POLYGON,...)
>   you seemed to be argueing for it in the prcision reduction case .......
> 
> of course almost no clients support that kind of thing.... ;)
> 
> </devils advocate>

No, this is not the case, as outputting a COLLECTION from a POLYGON
input is nothing different from outputting a LINESTRING from a
POLYGON (which I'd say to be more appropriate): it still changes
geometry type. Also, I see no way a collection() can solve this
problem as its content would still be the argument of this same
discussion.

I'm open to discuss this issue about SnapToGrid() and Simplify(),
which are the functions I use for output preparation.

Then, there is another issue: wheter or not to allow 3points polygon
construction using other functions.
Note that a self-intersecting ring is also invalid, but checking for
that as well would be *really* slow (GEOS involved in every path
of a geometry transformation).

What I think is that postgis should not check if no 'bare' validity
things, and that isvalid() should return false instead of throwing
an exception. 

--strk;

> 
> C.
> 
> >So, what we could do is have isvalid() handle number of
> >polygon ring points itself before attempting to convert to GEOS.
> >If < 4 return FALSE, else continue to GEOS conversion ...
> >
> >--strk;
> >
> >On Fri, Jan 14, 2005 at 10:40:44AM -0500, Carl Anderson wrote:
> > 
> >
> >>strk at refractions.net wrote:
> >>
> >>   
> >>
> >>>PostGIS always allowed polygon rings with 3 points.
> >>>In this case it disagrees with GEOS about this.
> >>>Also, PostGIS does not allow 0 points.
> >>>
> >>>Should we enforce GEOS constraints or just have isvalid
> >>>return FALSE in these cases ?
> >>>
> >>>
> >>>
> >>>     
> >>>
> >>a LINESTRING with 3 points is not simple (passes though the same point 
> >>in space twice) and cannot be a LINEARRING. Hence it cannot be part of a 
> >>valid POLYOGN
> >>
> >>C.
> >>
> >>   
> >>
> >>>--strk;
> >>>
> >>>On Thu, Jan 13, 2005 at 05:07:59PM -0500, Carl Anderson wrote:
> >>>
> >>>
> >>>     
> >>>
> >>>>need to test for ring counts prior to sending to GEOS
> >>>>
> >>>>select  isvalid(geometry('POLYGON((0 0,0 1,0 0))'));
> >>>>NOTICE:   IllegalArgumentException: Number of points must be 0 or >3
> >>>>ERROR:      POSTGIS2GEOS conversion failed
> >>>>
> >>>>
> >>>>-- 
> >>>>Carl Anderson
> >>>>GIS Manager Fulton County, Georgia
> >>>>carl.anderson at co.fulton.ga.us
> >>>>404.730.8026
> >>>>
> >>>>
> >>>>-----------------------------------------------------
> >>>>This message has been scanned for viruses and
> >>>>dangerous content for Fulton County by DefendMail, and is
> >>>>believed to be clean.
> >>>>
> >>>>_______________________________________________
> >>>>postgis-devel mailing list
> >>>>postgis-devel at postgis.refractions.net
> >>>>http://postgis.refractions.net/mailman/listinfo/postgis-devel
> >>>> 
> >>>>
> >>>>       
> >>>>
> >>>
> >>>     
> >>>
> >>-- 
> >>Carl Anderson
> >>GIS Manager Fulton County, Georgia
> >>carl.anderson at co.fulton.ga.us
> >>404.730.8026
> >>
> >>
> >>-----------------------------------------------------
> >>This message has been scanned for viruses and
> >>dangerous content for Fulton County by DefendMail, and is
> >>believed to be clean.
> >>
> >>_______________________________________________
> >>postgis-devel mailing list
> >>postgis-devel at postgis.refractions.net
> >>http://postgis.refractions.net/mailman/listinfo/postgis-devel
> >>   
> >>
> >
> > 
> >
> 
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-devel

-- 

For standing up against patentability of software,

  Thank You, Poland!

Read the intervention:    http://kwiki.ffii.org/ConsPolon041221En
Send your thanks:         thankyoupoland.info
Read/do more:		  http://www.noepatents.org/



More information about the postgis-devel mailing list