AW: Re: [postgis-users] ST_Unioning invalid multipolygons

Düster Horst Horst.Duester at bd.so.ch
Fri Aug 29 00:02:02 PDT 2008


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


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
Horst

------------------------------------------------

Dr. Horst Düster
GIS-Koordinator, Stv. Amtschef

Kanton Solothurn
Bau- und Justizdepartement
Amt für Geoinformation
SO!GIS Koordination
Rötistrasse 4
CH-4501 Solothurn

Telefon ++41(0)32 627 25 32
Telefax ++41(0)32 627 22 14

mailto:horst.duester at bd.so.ch
http://www.agi.so.ch



-----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
> Thanks,
> David
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>   

_______________________________________________
postgis-users mailing list
postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20080829/19db1708/attachment.html>


More information about the postgis-users mailing list