[postgis-users] Clipping Polygons to Country Borders

Dylan Beaudette dylan.beaudette at gmail.com
Tue Aug 26 09:02:23 PDT 2008

On Monday 25 August 2008, Dylan Lorimer wrote:
> Hi PostGIS Folks,
> I have a table with several polygons, some overlapping, each arbitrarily
> sized, and some falling across the border of France and Spain. For the sake
> of my question, it doesn't really matter the dimensions, number, or
> complexity of the polygons, but to keep things simple let's say that I have
> 50 of these polygons in table A.
> I also have polygons representing France and Spain, stored in table B with
> country_name as the ... country name.
> The goal of this exercise is to compute the sum of all unique coverage by
> polygons over each country. So the first thing I need to do is dissolve the
> polygons where they intersect to get rid of overlap. Let's say I do this
> using ST_MemUnion and use the political borders in table B as follows:
> CREATE TABLE dissolved_polygons AS SELECT ST_MemUnion(a.the_geom),
> b.country_name FROM a LEFT JOIN b ON ST_Intersects(a.the_geom, b.the_geom)
> Now table dissolved_polygons has 2 entries - one for france and one for
> spain. Each is a multi-polygon representing the coverage in each country.
> However, for dissolved polygons that span the border, they are fully
> represented in each country. My question at this point is how I can then
> delete any portion of the polygon in France that extends into Spain, and
> vice-verca?
> Perhaps there is a better way altogether to do this? Maybe use
> ST_Difference on the original non-dissolved polygons?
> I hope my question is clear enough.
> Many Thanks.
> -dylan

Hi Dylan,

I am not sure if I understand your problem-- it may help to actually tell us 
what you are doing. From what I gather, something like this may work:

-- pseudo-code
c = intersection(a,b)

d = GeomUnion(c) group by country_name

Make sense?


PS: that looks a lot like a "note to self"!

Dylan Beaudette
Soil Resource Laboratory
University of California at Davis

More information about the postgis-users mailing list