【发布时间】:2017-08-26 19:36:00
【问题描述】:
我在这里使用 R 作为 GIS 来创建地图。这是一个单色(黑色/白色)的场地平面图。但是,我想使用these open triangular symbols for coniferous forests 将森林与其他地区区分开来,这在德语世界的制图学中很常见。
经过一番研究,我找到了 TeachingDemos 包中的 my.symbols 函数。我知道可以编写一个函数,在xlim = c(-1,1)、ylim = c(-1,1) 绘图中绘制所需的符号,然后使用TeachingDemos::my.symbols 将此符号与points 函数一起添加到绘图中。我的计划是给TeachingDemos::my.symbols 森林区域内的网格坐标。
我设法编写了一个绘制符号的函数:
nw <- function(){
par(oma = c(0,0,0,0), mar = c(0,0,0,0))
plot(c(-0.84, 0), c(-0.4, 0.67), xlim = c(-1,1), ylim = c(-1,1), type = "l", lwd = 2)
segments(0, 0.67, 0.84, -0.4, lwd = 4)
}
但我没有设法以正确的方式将函数传递给my.symbols。我也没有设法仅在森林多边形中扩展网格,因此将其扩展到多边形层的整个边界框 (bbox) 并仅选择位于森林中的点。比如:
library(maptools)
nc1 <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
proj4string=CRS("+proj=longlat +datum=NAD27"))
cd <- c(100, 50)
grd <- GridTopology(cellcentre.offset = nc1@bbox[, 1],
cellsize = rep(diff(as.numeric(nc1@bbox["x",]))/100, 2),
cells.dim = cd)
grd.sp <- SpatialPixelsDataFrame(grd,
data = data.frame(id = 1:prod(cd)),
proj4string = CRS(proj4string(nc1)))
x11(10, 6)
plot(nc1)
points(coordinates(grd.sp[nc1[which(nc1$AREA > 0.15),],]))
【问题讨论】:
标签: r plot maps gis geospatial