假设:
library(sp)
l1 = cbind(c(2,4,6),c(3,2,5))
rownames(l1) = letters[1:3]
l2 = cbind(c(3,6,4),c(4,3,4))
rownames(l2) = letters[1:3]
l3 = cbind(c(2,9),c(4,5))
rownames(l3) = letters[1:2]
Sl1 = Line(l1)
Sl2 = Line(l2)
Sl3 = Line(l3)
Ll1 = Lines(list(Sl1), ID="a")
Ll2 = Lines(list(Sl2), ID="b")
Ll3 = Lines(list(Sl3), ID="c")
Sl = SpatialLines(list(Ll1,Ll2,Ll3))
Sr1 = Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))
Sr2 = Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))
Sr3 = Polygon(cbind(c(4,4,5,10,4),c(5,3,2,5,5)))
Srs1 = Polygons(list(Sr1),ID="x")
Srs2 = Polygons(list(Sr2), ID="y")
Srs3 = Polygons(list(Sr3), ID="z")
SpP = SpatialPolygons(list(Srs1,Srs2,Srs3), 1:3)
plot(SpP, col = 1:3, pbg="white")
lines(Sl, col="orange", lwd=2)
我正在寻找的是一种通过Spatialpolygons一步剪辑所有Spatiallines的方法。 输出应该是一个Spatiallines对象,它表示输入Spatiallines的部分,它们位于Spatialpolygon的每个特征内。
我试过的是:
Sl_subset <- Sl[SpP, ]
和
int<-gIntersection(SpP,Sl)
我不知道如何“调用”Spatialpolygon的功能。