Thanks for the suggestion. I managed to get a workable result by using ST_SimplifyPreserveTopology, like so:
ST_Multi(ST_Union(ST_SimplifyPreserveTopology(n.the_geom, 0.001))) Any red flags about this approach? Thanks, David On Fri, 2008-08-29 at 09:01 -0400, Burgholzer,Robert wrote: > http://www.sogis1.so.ch/sogis/dl/postgis/cleanGeometry.sql > > 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 > [EMAIL PROTECTED] > 804-698-4405 > Open Source Modeling Tools: > http://sourceforge.net/projects/npsource/ > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stephan Holl > Sent: Friday, August 29, 2008 4:35 AM > To: PostGIS Users Discussion > Cc: [EMAIL PROTECTED] > Subject: Re: [postgis-users] ST_Unioning invalid multipolygons > > Hello Horst, > > Düster Horst <[EMAIL PROTECTED]>, [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 > > Stephan > > > > > -----Ursprüngliche Nachricht----- > > Von: Michael Michaud [mailto:[EMAIL PROTECTED] > > 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 > > _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
