[postgis-users] error in isvalid function

strk at refractions.net strk at refractions.net
Thu Nov 4 23:38:09 PST 2004


I've verified your query.
The Polygon is actually invalid due to degenerate hole (as the
exception states).
When extracting the rings, these are handled as LINESTRINGS, for which
the degenerate case is not checked.
Which do you think would be a better handling of this situation ?

--strk;



On Fri, Nov 05, 2004 at 09:17:01AM +0300, ksa-nil5 wrote:
> >> Hi, all!
> >> 
> >> I'm working with follow data (POLYGON):
> >> 
> >> POLYGON((37.654639 55.726496,37.654056 55.726947,37.653801 55.727333,37.653801 55.727435,37.654468 55.727483,37.656654 55.727466,37.656572 55.727063,37.656654 55.726713,37.657052 55.726531,37.657571 55.726365,37.658071 55.725961,37.658321 55.725609,37.658303 55.725374,37.658321 55.725609,37.658906 55.725309,37.659488 55.72511,37.658135 55.724571,37.657386 55.724922,37.657135 55.724873,37.65647 55.725274,37.655635 55.725828,37.655195 55.7265,37.655635 55.725927,37.654639 55.726496),(37.658321 55.725609,37.658906 55.725309,37.659488 55.72511,37.658906 55.725309,37.658321 55.725609))
> >> 
> >> search=# select isvalid(geometryFromText(the_geom));
> >> NOTICE:  IllegalArgumentException: degenerate ring (does not contain 3 distinct points)
> >> ERROR:  GEOS isvalid() threw an error!
> >> 
> >> search=# select isvalid(exteriorring(geometryFromText(the_geom)));
> >>  isvalid
> >> ---------
> >>  t
> >> (1 row)
> >> 
> >> search=# select isvalid(interiorringN(geometryFromText(the_geom),1));
> >>  isvalid
> >> ---------
> >>  t
> >> (1 row)
> >> 
> >> Any suggestions?
> >> 
> >> Thanks! 
> >> 
> >> Sergey Karin
> >
> >What GEOS / PostGIS version are you using ?
> >
> >SELECT postgis_full_version();
> >
> >--strk;
> >
> 
> search=# select postgis_full_version();
>                                         postgis_full_version
> -----------------------------------------------------------------------------------------------------
>  POSTGIS="0.9.0" GEOS="2.0.1" PROJ="Rel. 4.4.8, 3 May 2004" USE_STATS DBPROC="0.0.1" RELPROC="0.0.1"
> (1 row)



More information about the postgis-users mailing list