[postgis-users] How to eliminate small gaps produced by ST_union?

Alexandre Neto senhor.neto at gmail.com
Fri Oct 26 06:55:20 PDT 2012


That seamed to have worked.

Here is my implementation of Sandro guidelines:

SELECT ST_Union(v.the_geom)
FROM
(SELECT ST_MakeValid(St_Snap(t.the_geom,
        (SELECT ST_SnapToGrid(st_collect(f.the_geom), 0.001) as the_geom
         FROM (SELECT (ST_DumpPoints(g.the_geom)).geom as the_geom
               FROM table1 as g) as f),
        0.001)) as the_geom
FROM
    table1 as t) as v;

It's obviously a slow process as it implies 2 sequential reads in the
table, it takes 11ms with a very simple table containing only 2 polygons,
as it implies 2 sequential reads in the table.

With a bigger table ( 701 polygons, 113147 vertices), it takes 762575 ms...

Since the problem occurs when I do the input of new polygons, I will try to
use this procedures only for the new polygons and the adjacent ones.

Thank you for your help.

Alexandre Neto

On Fri, Oct 26, 2012 at 10:20 AM, Sandro Santilli <strk at keybit.net> wrote:

> On Fri, Oct 26, 2012 at 10:05:29AM +0100, Alexandre Neto wrote:
> > Thank you for all the answers.
> >
> > I did not try the topology, as I need to study its implementation a
> little
> > better.
> >
> > I did not found the st_cleanpolygon function and using (St_Buffer, 0) did
> > not worked:
> >
> > The dilate\erode visually corrects the problem, but of course introduce a
> > small rounding in the angle introducing a small overlaping with other
> > adjacent polygons...
> >
> > I guess that the tolerance with the GEOS PrecisionModel would be nice, I
> > think that is the method used by ArcGIS products to "insure" geometry
> > "topology" after aggregation operations.
> >
> > Any more ideas?
>
> You may try collecting all vertices of input into a MULTIPOINT, then
> ST_SnapToGrid that MULTIPOINT, then ST_Snap each of the input geometries
> to the resulting MULTIPOINT, with your desired tolerance.
> Finally pass the result trough ST_MakeValid to drop collapsed polygons.
>
> Should work fine.  Let us know.
>
> --strk;
>
>  http://www.cartodb.com - Map, analyze and build applications with your
> data
>
>                                        ~~ http://strk.keybit.net
>
> _______________________________________________
> 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/20121026/007702eb/attachment.html>


More information about the postgis-users mailing list