I should note that while "Equals" yields a "false", "=" yields a "true".
r.b. Robert W. Burgholzer Surface Water Modeler Office of Water Supply and Planning Virginia Department of Environmental Quality [EMAIL PROTECTED] 804-698-4405 Open Source Modeling Tools: http://sourceforge.net/projects/npsource/ -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Burgholzer,Robert Sent: Thursday, April 24, 2008 9:20 AM To: PostGIS Users Discussion Subject: RE: AW: Re: AW: RE: [postgis-users] Geometrycollection to Multipolygon Horst, I have what seems to be an ugly solution to your difficulty, but I think it works. I do a manipulation on the asText entities, stripping out the "POLYGON" label, and merging them together to form a MULTIPOLYGON. While this is ugly, it could form the basis of a simple function to achieve this, perhaps by iterating through an array collection. This example shows the creation of a MULTI with 3 component polygons: select geomFromText('MULTIPOLYGON(' || a.poly || ',' || b.poly || ',' || c.poly ')',4326) as newgeom from (select trim (leading 'POLYGON' from asText(geometryN(the_geom,1))) as poly from proj_seggroups where gid = 5 ) as a, (select trim (leading 'POLYGON' from asText(geometryN(the_geom,2))) as poly from proj_seggroups where gid = 5 ) as b, (select trim (leading 'POLYGON' from asText(geometryN(the_geom,3))) as poly from proj_seggroups where gid = 5 ) as c The interesting part is, that I have checked this with a multi that has 5 polys in it, and when converted asText, they are identical, however, using the postgis Equals function declares them to be non-equal. Not sure exactly, but here is the query that I used to do this: select Equals(foo.newgeom, bar.the_geom) from ( select geomFromText('MULTIPOLYGON(' || a.poly || ',' || b.poly || ',' || c.poly || ',' || d.poly || ',' || e.poly || ')',4326) as newgeom from (select trim (leading 'POLYGON' from asText(geometryN(the_geom,1))) as poly from proj_seggroups where gid = 5) as a, (select trim (leading 'POLYGON' from asText(geometryN(the_geom,2))) as poly from proj_seggroups where gid = 5) as b, (select trim (leading 'POLYGON' from asText(geometryN(the_geom,3))) as poly from proj_seggroups where gid = 5) as c, (select trim (leading 'POLYGON' from asText(geometryN(the_geom,4))) as poly from proj_seggroups where gid = 5) as d, (select trim (leading 'POLYGON' from asText(geometryN(the_geom,5))) as poly from proj_seggroups where gid = 5) as e ) as foo, ( select the_geom from proj_seggroups where gid = 5 ) as bar; Good luck! Robert W. Burgholzer Surface Water Modeler Office of Water Supply and Planning Virginia Department of Environmental Quality [EMAIL PROTECTED] 804-698-4405 Open Source Modeling Tools: http://sourceforge.net/projects/npsource/ -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stephen Woodbridge Sent: Wednesday, April 23, 2008 12:54 PM To: Düster Horst Cc: postgis-users Subject: Re: AW: Re: AW: RE: [postgis-users] Geometrycollection to Multipolygon I would expect to get a collection out of st_collect(), I think it is strange (a bug?) that you get a multipolygon out of two polygons. -Steve Düster Horst wrote: > > Stephen > >>and see if you get a multipolygon ot a collection as the result. > > A collection is the result of course. The mix of two geometry types is > the one reason, but your idea leeds also to a collection because your > idea tries to collect two multigeometries. I believe it is not possible > to merge multipolygons into one multipolygon like > MULTIPOLYGON(MULTIPOLYGON1, MULTIPOLYGON2,...). This geometry has to be > a collection. > > Horst > > ------------------------------------------------ > > Dr. Horst Düster > GIS-Koordinator, Stv. Amtschef > > Kanton Solothurn > Bau- und Justizdepartement > Amt für Geoinformation > SO!GIS Koordination > Rötistrasse 4 > CH-4501 Solothurn > > Telefon ++41(0)32 627 25 32 > Telefax ++41(0)32 627 22 14 > > mailto:[EMAIL PROTECTED] > http://www.agi.so.ch > > -----Ursprüngliche Nachricht----- > Von: Stephen Woodbridge [mailto:[EMAIL PROTECTED] > Gesendet am: Mittwoch, 23. April 2008 17:59 > An: PostGIS Users Discussion > Betreff: Re: AW: RE: [postgis-users] Geometrycollection to Multipolygon > > I think you are getting the collection because you are mixing types. > Try this (I haven't tried it): > > st_collect( > st_collect(st_multi(polygon1), st_multi(polygon2)), > st_multi(polygon3)) > > and see if you get a multipolygon ot a collection as the result. > > -Steve W > > Düster Horst wrote: >> >> Regina >> >> Thank you for your response. Mmmm.. your trick doesn't solve my problem. >> Perhaps I should tell you why I do have a geometrycollection. My >> startingpoint is a sequence of single polygons. My aim is to merge them >> together to one multipolygon. I do this with st_collect. This works fine >> with two polygons: >> >> st_collect(polygon1,polygon2) => multipolygon(1,2). >> >> When I Process the third polygon with: st_collect(multipolygon(1,2), >> polygon3) => Geometrycollection(multipolygon(1,2),polygon3) >> >> I do get the geomtrycollection and so on. >> >> My main problem is to merge the three polygons into one multipolygon >> with 3 geometries. >> >> When I solve this problem I can offer a procedure to clean invalid >> geometries. >> >> Regards >> Horst >> >> >> ------------------------------------------------ >> >> Dr. Horst Düster >> GIS-Koordinator, Stv. Amtschef >> >> Kanton Solothurn >> Bau- und Justizdepartement >> Amt für Geoinformation >> SO!GIS Koordination >> Rötistrasse 4 >> CH-4501 Solothurn >> >> Telefon ++41(0)32 627 25 32 >> Telefax ++41(0)32 627 22 14 >> >> mailto:[EMAIL PROTECTED] >> http://www.agi.so.ch <http://www.agi.so.ch/> >> >> >> >> -----Ursprüngliche Nachricht----- >> *Von:* Obe, Regina [mailto:[EMAIL PROTECTED] >> *Gesendet am:* Mittwoch, 23. April 2008 14:24 >> *An:* PostGIS Users Discussion >> *Betreff:* RE: [postgis-users] Geometrycollection to Multipolygon >> >> This sometimes does the trick for me if they actually can be unioned >> >> ST_Union(GEOMCOLL, ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)', >> yoursridhere) ) >> >> (your number 2 doesn't work because that is the aggregate form, not >> because ST_Union can't handle geometry collections I think) >> >> >> Hope that helps, >> Regina >> *From:* [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] *On Behalf Of >> *Düster Horst >> *Sent:* Wednesday, April 23, 2008 2:25 AM >> *To:* postgis-users >> *Subject:* [postgis-users] Geometrycollection to Multipolygon >> >> I do have a Geometrycollection which consists of a collection of >> Multipolygons and Polygons. My aim is to create one single >> Multipolygon from the mentioned Geometry collection. >> >> Until now I tried the following steps without result: >> >> 1. ST_BUFFER(GEOMCOLL,0.0) => It works but all inner rings of my >> input geometry are lost. >> 2. ST_UNION(GEOMCOLL) => doesn't work with Geometrycollections >> >> Does anyone has a solution to solve my problem? >> >> Best regards >> Horst >> >> ------------------------------------------------ >> >> Dr. Horst Düster >> GIS-Koordinator, Stv. Amtschef >> >> Kanton Solothurn >> Bau- und Justizdepartement >> Amt für Geoinformation >> SO!GIS Koordination >> Rötistrasse 4 >> CH-4501 Solothurn >> >> Telefon ++41(0)32 627 25 32 >> Telefax ++41(0)32 627 22 14 >> >> mailto:[EMAIL PROTECTED] >> http://www.agi.so.ch >> >> >> >> *The substance of this message, including any attachments, may be >> confidential, legally privileged and/or exempt from disclosure >> pursuant to Massachusetts law. It is intended solely for the >> addressee. If you received this in error, please contact the sender >> and delete the material from any computer. * >> >> >> >> * Help make the earth a greener place. If at all possible resist >> printing this email and join us in saving paper. * >> >> * * >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> 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 _______________________________________________ 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
