Great seems to do exactly what I need. But when I tried to test it with
some simple samples:
create table objects
(
name varchar(15) not null primary key,
parent varchar(15),
type varchar(15) not null
);
select addgeometrycolumn('objects','geom3d',-1,'POLYGON',3);
insert into objects(name, type, geom3d) values('Room01', 'room',
(GeomFromEWKT('POLYGON((0 0 0, 10 0 0, 10 10 0, 0 10 0, 0 0 0))')));
insert into objects(name, type, geom3d) values('Room02', 'room',
(GeomFromEWKT('POLYGON((10 0 0, 20 0 0, 20 10 0, 10 10 0, 10 0 0))')));
select astext(geom3d) from (select geomunion(objects.geom3d)::geometry
from objects) as foo;
it says: ERROR: column "geom3d" does not exist
Did I miss something or what's going wrong?
Nicolas Ribot schrieb:
Try to geomunion() your polygons.
It will create a multipolygon where touching polygons will be unioned.
then, use dump() on the geomunion to extract each polygon.
Example:
the polygon table contains:
test=# select id, astext(geometry) from tpoly2;
id | astext
----+--------------------------------------------------------------------
1 | POLYGON((166 272,107 210,145 142,218 158,209 215,182 240,166 272))
2 | POLYGON((242 118,218 158,145 142,167 104,242 118))
3 | POLYGON((76 161,145 142,167 104,112 78,76 161))
| POLYGON((284 174,283 112,320 124,295 129,302 156,284 174))
(4 rows)
The query to extract unioned polygon based on a common edge:
select astext(geom(dump(geom))), path(dump(geom))
from (select geomunion(t1.geometry)::geometry as geom
from tpoly2 t1
) as foo;
Leads to this result:
astext
| path
-------------------------------------------------------------------------------------------------+------
POLYGON((284 174,302 156,295 129,320 124,283 112,284 174))
| {1}
POLYGON((76 161,145 142,107 210,166 272,182 240,209 215,218 158,242
118,167 104,112 78,76 161)) | {2}
(2 rows)
(see polygon.png and result.png images done with openjump)
HTH
Nicolas
On 01/02/2008, Simon Schneider <[EMAIL PROTECTED]> wrote:
Hi,
I've several polygons wich are all connected by at least one line and
I'm looking for a way to make one big polygon which contains all the
others. In other words the shape of the polygoncluster.
I've been locking around for quite a while but I found no way to solve
this within postgis.
Cheers,
Simon
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users