[postgis-users] problem creating and exporting a polygon with holeusing pgsql2shp
Ghislain Geniaux
geniaux at avignon.inra.fr
Wed Mar 12 05:46:35 PDT 2008
Thanks for your answer Regina,
but ST_Difference does not solve the problem :
ST_Difference and ST_Symdifference give the same polygon but the
export by pgsql2shp failled.
conversion=# create table temp as
conversion-# select r.gid, ST_Difference(r.the_geom,i.the_geom) as
the_geom from recouv as r, recouv as i where i.gid=2 and r.gid=1;
SELECT
conversion=# ALTER TABLE temp ADD PRIMARY KEY (gID);
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index
"temp_pkey" for table "temp"
ALTER TABLE
conversion=# SELECT geometrytype(the_geom), Nrings(the_geom), area2d
(the_geom) from temp;
geometrytype | nrings | area2d
--------------+--------+------------------
POLYGON | 2 | 2177713.02017212
(1 row)
conversion=# create table temp as
conversion-# select r.gid, ST_symDifference(r.the_geom,i.the_geom)
as the_geom from recouv as r, recouv as i where i.gid=2 and r.gid=1;
SELECT
conversion=# ALTER TABLE temp ADD PRIMARY KEY (gID);
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index
"temp_pkey" for table "temp"
ALTER TABLE
conversion=# SELECT geometrytype(the_geom), Nrings(the_geom), area2d
(the_geom) from temp;
geometrytype | nrings | area2d
--------------+--------+------------------
POLYGON | 2 | 2177713.02017212
(1 row)
The two polygons are goods and well displayed in QGIS but exported
shapefiles are empty or corrupted.
Le 12 mars 08 à 12:51, Obe, Regina a écrit :
> I'm guessing your result may be a Geometrycollection which ESRI
> shape has no clue what to do with.
>
> If I understand you correctly, I think you really should be using
> ST_Difference instead of ST_SymDifference.
>
> So ST_Difference(polygon2, polygon1) - will give you that portion
> of polygon2 which does not intersect with polygon1 which would give
> you a polygon with polygon1 removed (a doughnut so to speak).
>
> The ST_Symdifference will give you that portion of polygon2 not in
> polygon1 + polygon1 not in polygon2 = the holed polygon you want +
> an empty geometry collection -> a geometry collection if taken
> strictly.
> I'm not sure if PostGIS will throw out the second part (the empty
> collection) - and at anyrate is a waste of processing power to even
> compute it.
>
> Hope that helps,
> Regina
>
> From: postgis-users-bounces at postgis.refractions.net [mailto:postgis-
> users-bounces at postgis.refractions.net] On Behalf Of Ghislain Geniaux
> Sent: Wednesday, March 12, 2008 6:29 AM
> To: postgis-users at postgis.refractions.net
> Subject: [postgis-users] problem creating and exporting a polygon
> with holeusing pgsql2shp
>
> Using a postgis table with Two polygons, in which polygon 1
> entirely contained in polygon 2, I've create a new polygon with a
> hole using :
>
> ------
> create table matable2 as
> select r.gid, area(symdifference(r.the_geom,i.the_geom)) as area,
> (symdifference(r.the_geom,i.the_geom)) as the_geom from matable as
> r, matable as i where i.gid=2 and r.gid=1;
>
> ALTER TABLE matable2 ADD PRIMARY KEY (GID);
> \q
> pgsql2shp -f ext.shp conversion 'select * from matable2'
> -----
>
> Area is correct, display of the polygon in QGIS is also correct,
> but the export by pgsl2shp produce an empty shapefile.
>
> How to deal with this problem?
>
> ------------------------------------------
> Geniaux Ghislain
>
>
>
>
> 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
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
------------------------------------------
Geniaux Ghislain
INRA SAD Ecodéveloppement
Site Agroparc
Domaine St Paul
84914 Avignon Cedex 9
Tél : 04 32 72 25 64
Fax : 04 32 72 25 62
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20080312/0d40ebc4/attachment.html>
More information about the postgis-users
mailing list