如何在道路上定义+ - 1区域?

时间:2017-12-01 22:14:59

标签: r sp maptools spatial-data-frame

考虑由以下spatiallinedataframe定义的地理线

library(sp)
library(rgeos)

## from the sp vignette:
l1 <- cbind(c(1, 2, 3), c(3, 2, 2))
Sl1 <- Line(l1)
S1 <- Lines(list(Sl1), ID = "a")
Sl <- SpatialLines(list(S1))

## sample data: line lengths
df <- data.frame(len = sapply(1:length(Sl), function(i) gLength(Sl[i, ])))
rownames(df) <- sapply(1:length(Sl), function(i) Sl@lines[[i]]@ID)


## SpatialLines to SpatialLinesDataFrame
Sldf <- SpatialLinesDataFrame(Sl, data = df)

plot(Sldf)

我想建立一个空间多边形,在这条线的周围恰好达到1,就像一个影响区域#34;。 我的第一个猜测是使用maptools包中的elide()并将行移动+ -1,但我需要处理每个角落。第二个猜测是沿着线构建一个阵列的光盘并将它们合并,但这听起来太多了“天然气工厂”。要好。

使用rgeos中的gBuffer(感谢Henrik),它可以正常工作

surf <- gBuffer(spgeom=Sldf,width=1)
plot(surf,add=T)

0 个答案:

没有答案