Thank you Carl for your example! I am still trying to get this working. In your example, what is "taxpin"? Is this a unique id for each tax parcel polygon? Also, is it intentional that you have two times a.taxpin != b.taxpin ? or should the second time be a.taxpin != c.taxpin ?
I tried to adopt your example to my table, but I don't get any records as a result. Here is my query: SELECT AsText(ST_Intersection(ST_Intersection(a.the_geom,b.the_geom),c.the_geom)), a.gid, b.gid, c.gid FROM gemeinden a, gemeinden b, gemeinden c WHERE a.gid != b.gid AND b.gid != c.gid AND ST_DWithin(a.the_geom,b.the_geom,0) AND ST_DWithin(c.the_geom,ST_Intersection(a.the_geom,b.the_geom),0) ; And here my table definition: CREATE TABLE gemeinden ( gid serial NOT NULL, gmde smallint, bezirk smallint, kt smallint, name character varying(40), the_geom geometry, CONSTRAINT gemeinden_pkey PRIMARY KEY (gid), CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2), CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL), CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 21781) ) WITH (OIDS=FALSE); I am not sure I fully understand the query. I understand the first part with the geometry intersection and the part where you want to make sure that one gets neighbour polygons but I don't understand the rest of the query and why it fails in my example given above. Thanks for getting back about my problem. Andreas > You don't need to build topology. > > Have you tried something like: > > select intersection(intersection (a.shape,b.shape),c.shape) , a.taxpin, > b.taxpin, c.taxpin > from tax.parcel a, tax.parcel b, tax.parcel c > where > a.taxpin != b.taxpin and > a.taxpin != b.taxpin and > st_dwithin(a.shape,b.shape,0) and > st_dwithin(c.shape,intersection (a.shape,b.shape),0) > ; > > > In human terms > find the intersection of a tax parcel with the intersection of two > other parcels that share an edge (they have an intersection) > The intersection of an edge (line) and a no overlapping polygon would be > a point. > > If your table has overlapping polygons this will return a slightly > different result. > > > You can order or group the results by > astext(intersection(intersection (a.shape,b.shape),c.shape)) > > To find nodes with more than three members. > > C. > > > Andreas Neumann wrote: >> Hello all, >> >> I have a polygon mosaic (lets say administrative units, municipalities) >> and would like to get a list of nodes where 3 or more polygons meet or 2 >> polygons depart at the edge of the mosaic. Is there any straight forward >> way to extract these nodes? >> >> I have read about topology support in Postgis and found this: >> http://postgis.refractions.net/support/wiki/index.php?PostgisTopology - >> whats the state of this project? >> >> Thanks for any hints on my two questions. >> >> Andreas >> >> >> > > _______________________________________________ > postgis-users mailing list > [email protected] > http://postgis.refractions.net/mailman/listinfo/postgis-users > -- Andreas Neumann Böschacherstrasse 6, CH-8624 Grüt/Gossau, Switzerland Email: [EMAIL PROTECTED], Web: * http://www.carto.net/ (Carto and SVG resources) * http://www.carto.net/neumann/ (personal page) * http://www.svgopen.org/ (SVG Open Conference) * http://www.geofoto.ch/ (Georeferenced Photos of Switzerland) _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
