[postgis-users] noding problem

Martin Davis mbdavis at refractions.net
Fri Oct 19 12:20:35 PDT 2007


Did you convert your polygons to linestrings?  If not, then you are 
running the union operation on polygonal geometry.  This is the usual 
source of topology errors (which are caused by robustness & precision 
issues in the underlying linework).

Chris Hermansen wrote:
> Hi folks;
>
> I posted something a few days back on a noding problem I'm having, and
> received no answer.  At this point I have more details and I think there
> is something seriously wrong.
>
> This is Postgis 1.3.1 and GEOS 3.0.0rc4.
>
> The Postgis Wiki has an example of putting two somewhat overlapping
> polygon networks together:
>
> http://www.postgis.org/support/wiki/index.php?ExamplesOverlayTables
>
> Basically, two tables of polygons are converted into linestrings and put
> in a third table.
>
> Then, the table of linestrings is noded; in the Wiki, the code given is:
>
> CREATE TEMP TABLE noded_lines AS
>    SELECT St_Union(the_geom) AS the_geom
>    FROM all_lines;
>
> Right, my problem!  I have two tables with multi-polygons.  I convert
> them to polygons.  I use isValid() on their geometries to make sure that
> they are in good shape.
>
> Then!  I run the "noding query" - which I might add takes a
> loooooooooooooooong time - and in the end I see:
>
> dustin=# create temp table step2 as
> dustin-# select st_union(geom) as geom from step1;
> NOTICE:  TopologyException: found non-noded intersection between
> 1.40568e+06 507100, 1.40568e+06 507100 and 1.40568e+06 507100,
> 1.40568e+06 507100 1.40568e+06 507100
> ERROR:  GEOS union() threw an error!
>
> OK, now to me this doesn't seem at all fair!  If the st_union() command
> is supposed to node the linework then WHY is complaining about non-noded
> intersections?
>
> Thanks in advance for any light you can shed on this!
>
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022




More information about the postgis-users mailing list