Jd *_*aba 4 gis plot r map clip
我想知道这是否可能做到这一点.
我有一个数据作为SpatialLinesDataFrame,另一个作为spatialPolygonDataFrame.是否有可能覆盖这两个数据?
当我尝试覆盖这些时,我收到以下错误:
jd <- overlay(res,hello)
Error in function (classes, fdef, mtable) : unable to find an inherited method for function
‘overlay’ for signature ‘"SpatialLinesDataFrame", "SpatialPolygonsDataFrame"’
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,res是SpatialLinesDataFrame,hello是SpatialPolygonDataFrame.
我有一个shapefile,然后我有x,y和z坐标的数据点.我想在shapefile上显示轮廓线.
我使用的程序是使用akima包进行插值.我用来插值的代码是
fld <- interp(x,y,z)
Run Code Online (Sandbox Code Playgroud)
然后我使用以下代码将其更改为空间对象:
res <-ContourLines2SLDF(contourLines(fld))
Run Code Online (Sandbox Code Playgroud)
上述命令将轮廓线存储为空间数据.
然后我读取shapefile,我将shapefile和res绘制如下:
p1 <-
spplot(hello,sp.layout=list(list("sp.lines",res)),col="blue",lwd=0,fill="grey",colorkey=F)
p1
Run Code Online (Sandbox Code Playgroud)
"hello"是我的shapefile,"res"是我创建的对象,如上所示.
问题是存储在"res"中的轮廓延伸到shapefile之外.所以我想用shapefile剪切那个轮廓,只显示shapefile区域内的轮廓.
所以我正在寻找一种用多边形图层剪切轮廓图层的方法.
我附上了我的代码所附的图像.

在图像中,您可以看到shapefile中的行.我还想知道如何在地图上显示轮廓水平.
非常感谢.
Jdbaba
我也想知道叠加层到底做了什么.它是否与两个数据的区域相交?
谢谢.
听起来你正试图将线条剪裁到多边形范围.gIntersection从rgeos包中使用.这是一个可重复的例子:
library(rgeos)
xx <- SpatialPoints(coords=matrix(data=c(0,0), nrow=1))
xx <- gBuffer(spgeom=xx, width=1)
yy <- SpatialLines(list(Lines(Line(matrix(c(-1,1,-1,1), nrow=2)), ID=1)))
zz <- gIntersection(yy, xx)
Run Code Online (Sandbox Code Playgroud)
您可以像这样叠加图:
plot(xx)
plot(zz, add = TRUE, col = "blue")
Run Code Online (Sandbox Code Playgroud)