[postgis-users] clip a polygon layer with another polygon later
Puneet Kishor
punk.kish at gmail.com
Fri Jun 8 20:50:39 PDT 2012
On Jun 8, 2012, at 10:30 PM, Brent Wood wrote:
> Without looking too much into it, I figure you can do this using a case when statement to identify & return the appropriate geometry for the different cases, with perhaps a coalesce to handle nulls??
I realized that my query was goofy. So, I tried the following
UPDATE polys
SET the_geom = COALESCE(t.clipped_geom, null)
FROM (
SELECT id,
ST_Intersection(o.the_geom, p.the_geom) AS clipped_geom
FROM polys p JOIN
outline o ON ST_Intersects(o.the_geom, p.the_geom)
) AS t
WHERE polys.id = t.id;
but no joy. No errors, but the actual features are not clipped.
Interestingly, QGIS has a geoprocessing plugin to "clip" one layer using another layer. I tried that, and that worked perfectly creating a shape file with the right features. I want to replicate that in code.
>
>
> Brent Wood
>
>
> --- On Sat, 6/9/12, Puneet Kishor <punk.kish at gmail.com> wrote:
>
> From: Puneet Kishor <punk.kish at gmail.com>
> Subject: [postgis-users] clip a polygon layer with another polygon later
> To: "PostGIS Users Discussion" <postgis-users at postgis.refractions.net>
> Date: Saturday, June 9, 2012, 2:50 PM
>
> Given
>
> CREATE TABLE outline (
> id,
> the_geom
> );
>
> and
>
> CREATE TABLE polys (
> id,
> the_geom
> );
>
> I want to update polys.the_geom with only those that are clipped by "outline". That is, all the "polys" that are completely within the ouline.the_geom rows should remain intact, all those that are intersected should only have there overlapping portion retained, and all that are outside outline.the_geom should be set to null.
>
> I am unable to figure out how to do this in one query. The following doesn't work
>
> UPDATE polys
> SET the_geom = ST_Intersection(o.the_geom, p.the_geom)
> FROM outline o JOIN
> polys p ON ST_Intersects(o.the_geom, p.the_geom)
> WHERE ST_Intersects(o.the_geom, p.the_geom) = 'true';
>
>
>
> --
> Puneet Kishor
More information about the postgis-users
mailing list