Following on from an answer about intersecting polygons with lines to chop up a polygon into smaller polygon units (in QGIS), I wanted to try the same thing in R. However, I cannot seem to find a method that works!
over() doesn't have a method for polygons intersecting with lines; I found
gIntersection() from rgeos but it fails:
require(sp) require(rgeos) poly <- readShapePoly("polygon.shp") lines <- readShapeLines("lines.shp") chopped <- gIntersection(poly, lines)
Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : UnsupportedOperationException: GeometryGraph::add(Geometry *): unknown geometry type: N4geos4geom18GeometryCollectionE
Update: Here's a link to the files in question.
Update 2: PaulG notes that it works and after updating rgeos and R I got rid of the error above. Thanks PaulG ...
However, gIntersection results in a SpatialLines object no matter whether I put in (poly, lines) or (lines, poly) - whereas the operation I did in QGIS (or Arc, back in the bad ol' days) will divide a polygon with the lines and result in a polygon object, not line.
So, how do I chop up my polygon with the lines and get polygons out?