On Thu, Mar 15, 2012 at 05:59:00PM +0100, Sandro Santilli wrote:
> On Thu, Mar 15, 2012 at 12:56:38PM -0400, Pierre Racine wrote:
> > >  1. find out intersecting pairs into cache (id1,id2,geom1,geom2)  2. 
> > > update cache
> > > set geom1 = st_difference(geom1, geom2)  3. update main set geom = c.geom1
> > > from cache where id1 = id
> > 
> > Hum... Life is never that easy.
> > 
> > That would work if one polygon would always overlap with only one polygon 
> > but if one polygon is overlapped by two polygons or more the same polygon 
> > as two differences associated with it in the second step and only the last 
> > one will remains in the last update...
> 
> True, should be an iterative process until "cache" becomes empty.

I would add that every iteration (ST_Difference call) would introduce
small changes in your boundaries possibly introducing gaps or new
overlaps.

You should really be constructing a topology out of that dataset,
you know ? Will be probably slow but I'm sure you can survive :)

--strk;

  ,------o-. 
  |   __/  |    Delivering high quality PostGIS 2.0 !
  |  / 2.0 |    http://strk.keybit.net - http://vizzuality.com
  `-o------'

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

Reply via email to