# [R-sig-Geo] clipping polygons, overlaying big polygon on polygons

Roger Bivand Roger.Bivand at nhh.no
Mon Feb 22 08:28:54 CET 2010

```On Sun, 21 Feb 2010, Markus Loecher wrote:

> I should have been much more specific with my question and supplied an
> example.
> In the meantime I believe I found the solution in the PBSmapping package,
> this time I will provide an example that illustrates what I am trying to
> achieve:
>
> #Get the boundaries for Manhattan:
> library(maps);
> library(PBSmapping);
> Manhattan <- map('county', 'new york,new york', plot=F);
> #define a few points in Manhattan and compute the corresponding Voronoi
> regions:
> XY <- cbind.data.frame( PID = 1, POS = 1:10,
>         X =
> c(-73.97220,-73.95456,-73.97906,-73.98685,-73.99968,-73.96716,-73.97127,-73.96524,-73.98322,-74.00587),
> Y =
> c(40.74983,40.77402,40.75022,40.73952,40.72842,40.75677,40.75112,40.75513,40.76271,40.74026)
> );
> polys <- calcVoronoi(as.PolySet(XY, projection="LL") );
> #plot the Voronoi regions:
> plotMap(polys)
> #It would be a much more meaningful plot to clip these Voronoi regions to
> the Manhattan boundaries:
> m <- as.PolySet (cbind.data.frame(PID = 1, POS = 1:length(Manhattan\$x),  X =
> Manhattan\$x, Y = Manhattan\$y))
> plotMap(joinPolys(m, polys, "INT" ), xlim = Manhattan\$range[1:2], ylim =
> Manhattan\$range[3:4]);
>
> So the key operation I was looking for was simply the intersection provided
> by the function (joinPolys(..., "INT" ) from PBSmapping.

Yes, but sadly this does not solve the problem if you are going to use the
output beyond hobby or education, as PBSmapping also uses the GPC code.
helpful way, but he has left his employing university, and they have
retained the rights to his software.

Although the PBSmapping maintainers claim to have permission to ship GPC
under GPL, I would try to stay as far away from it as possible. Once code
using it gets into the workflow, it is really hard to remove. The spatstat
maintainers are working hard to make users aware of the problems, which
will not go away, I'm afraid.

gpc.poly-shadowing classes and methods now provide an intersection
operation. Kicking the GPC habit is hard, but must be done, otherwise we

Before long CRAN may have colour-coded license dependencies, and
organisations can already block the installation of CRAN packages that
have non-free (as in speech) licenses or that depend upstream on non-free
packages. The akima package is another worry, but has a much clearer
license that does permit research under noncommercial use. GPC only
permits "non-commercial use of GPC (for example: private / hobbyist /
education)" while "commercial research" requires a commercial use license.
Any contract research could fall under "commercial research", because it
generates income.

I would be very grateful for help with rgeos ...

Roger

>
> Thanks again,
> Markus
>
>
> On Sun, Feb 21, 2010 at 8:26 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>
>> On Sun, 21 Feb 2010, Markus Loecher wrote:
>>
>>  Dear all,
>>> I apologize if this is too simple a question as it does appear to be a
>>> basic
>>> GIS operation but I have not found the appropriate function that performs
>>> a
>>> clipping of polygons into boundaries given by a (larger "outer") polygon.
>>> I
>>> tried overlay() from package sp and clipPolys from package PBSmapping but
>>> none converted the "inner" polygons into new ones laying inside the
>>> boundaries given by the outer polygon.
>>>
>>
>> Maybe a basic GIS operation should be done in a GIS? Otherwise, please feel
>> R-forge rgeos package. If you'd like to contribute such an intersection (I
>> think you want the intersection between an arbitrary SpatialPolygons object
>> and a simple SpatialPolygons object for the outer polygon) function tool to
>> rgeos, or at least a sketch of how it might work, that would be helpful.
>>
>> Roger
>>
>>
>>> Any help would be greatly appreciated,
>>> Thanks,
>>>
>>> Markus
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>>
>> --
>> Roger Bivand
>> Economic Geography Section, Department of Economics, Norwegian School of
>> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
>> e-mail: Roger.Bivand at nhh.no
>>
>>
>

--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of