0

考虑由以下空间线数据框定义的地理线

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 的空间多边形,就像一个“影响区域”。我的第一个猜测是使用 maptools 包中的 elide() 并将行移动 +-1,但我需要照顾好每个角落。第二个猜测是沿线构建阵列一的圆盘并将它们合并,但这听起来太“气工厂”而不是好。

使用来自 rgeos 的 gBuffer(感谢 Henrik),它可以工作

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

0 回答 0