[postgis-users] ST_Unioning invalid multipolygons

Burgholzer,Robert rwburgholzer at deq.virginia.gov
Fri Aug 29 06:01:32 PDT 2008


you need caps on the "G" in geometry.

Robert W. Burgholzer
Surface Water Modeler
Office of Water Supply and Planning
Virginia Department of Environmental Quality
rwburgholzer at deq.virginia.gov
Open Source Modeling Tools:

-----Original Message-----
From: postgis-users-bounces at postgis.refractions.net [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Stephan Holl
Sent: Friday, August 29, 2008 4:35 AM
To: PostGIS Users Discussion
Cc: Horst.Duester at bd.so.ch
Subject: Re: [postgis-users] ST_Unioning invalid multipolygons

Hello Horst,

Düster Horst <Horst.Duester at bd.so.ch>, [20080829-09:02:02]:

> Mmmmm...
> >Another solution which *may* work is to replace the geometry by a
> buffer 
> >of size 0 around the geometry in your select statement 
> No this is a bad idea. You do not have any control about the result of
> your buffer(0). A better way is to clean the polygon geometry with the
> cleangeometry() function you can download from:
> http://www.sogis1.so.ch/sogis/dl/postgis/cleangeometry.sql

This link seems to be wrong, I get a 404.
Could you post the correct link to this interesting-sounding
function, please?

> The function cleans by breaking the self-intersecting parts of your
> geometry into multigeometries.
> Sometimes postgis throws topology exeptions although your geometry is
> valid. In this case geos by itself produces the error. Maybe this is
> the result of rounding problems and you don't have any chance to
> solve the problem.

best regards from Osna


> -----Ursprüngliche Nachricht-----
> Von: Michael Michaud [mailto:michael.michaud at free.fr]
> Gesendet am: Freitag, 29. August 2008 08:24
> An: PostGIS Users Discussion
> Betreff: Re: [postgis-users] ST_Unioning invalid multipolygons
> David Jantzen a écrit :
> > Hi again,
> >
> > I'm trying to ST_Union multipolygons from the Zillow neighborhood
> data.
> > When I do this I occasionally see:
> >
> > NOTICE:  TopologyException: found non-noded intersection between
> > -73.812....
> >
> > This appears to be due to invalid geometries, as the following query
> > returns over a hundred rows:
> >
> > select * from neighborhoods where not ST_IsValid(the_geom)
> >
> > Can anyone suggest a workaround here?  The resulting geometry needs
> > to be a multipolygon.  Also, what is ST_Is_valid actually testing
> > for?
> The
> > documentation isn't very explicity about the definition of validity.
> >   
> Most of time, invalid polygons are polygons with a self intersecting 
> boundaries (as in the number '8') or self-touching boundary (two non 
> contiguous points of the boundary are touching each other)
> The best solution is to correct those geometries if you can.
> Another solution which *may* work is to replace the geometry by a
> buffer
> of size 0 around the geometry in your select statement (using a
> 0-buffer
> is a work-around which generally works with JTS library from which 
> postgis functions are derived).
> Michaël

Stephan Holl <stephan.holl at intevation.de>, http://intevation.de/~stephan
Tel: +49 (0)541-33 50 8 32 | Intevation GmbH | AG Osnabrück - HR B 18998
Geschäftsführer:  Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner

More information about the postgis-users mailing list