On Thu, Apr 12, 2012 at 11:21:01AM -0400, Pierre Racine wrote:
> So I reprocessed the two polygons below in a topology have tolerance=0. 
> However I still get the two same geometries in ovlp.test03_topo. I was 
> expecting three polygons: 1 non-overlapping part for each and 1 representing 
> the overlapping shared part with I don't know which attribute. 

You're looking at the _complexes_ (TopoGeometry), not at the _primitives_.

At the primitive levels, faces do _not_ overlap.
Only some faces are used by more than one TopoGeometry.

Now you'll see that we don't have very friendly TopoGeometry editing functions
so you're left on your own in cleaning up overlaps/underlaps. It'll be a matter
of removing faces from the definition of one or another TopoGeometry
(delete from topo3.relation where...)

The query would tell you which faces are used by multiple TopoGeometry objects,
so you know where overlaps are:

 SELECT r.element_id as face, array_agg(r.topogeo_id) as geoms
 FROM topo3.relation r
 WHERE r.element_type = 3 -- 3 == face
 GROUP BY face
 HAVING count(r.topogeo_id) > 1;

The numbers in the 'geoms' array are TopoGeometry identifiers,
you can query your layer by topogeom identifier using id(topogeom).

--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