如何在R中的shapfile上绘制多个矩形(根据坐标)?

时间:2019-06-04 10:56:35

标签: r raster shapefile

我想在一个区域上绘制多个矩形以显示子区域。

这些子区域分为以下几个部分:

1)喜马拉雅山西北部和喀喇昆仑(HKH1; 71°‒79°E,32°‒39°N),
2)喜马拉雅中部(HKH2; 76°‒93°E,27°‒32°N)
3)东南喜马拉雅山和青藏高原
(HKH3; 93°‒103°E,28°‒36°N)

此处显示了三个矩形
enter image description here

我尝试了许多代码,但未能达到我的期望。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

因为这些是矩形,所以可以做

library(raster)
HKH1 <- as(extent(71, 79, 32, 39), "SpatialPolygons")
HKH2 <- as(extent(76, 93, 27, 32), "SpatialPolygons") 
HKH3 <- as(extent(93, 103, 28, 36), "SpatialPolygons")
p <- bind(HKH1, HKH2, HKH3)

或者,如果您有多个矩形,也许会更好

m <- matrix(c(71, 79, 32, 39, 76, 93, 27, 32, 93, 103, 28, 36), ncol=4, byrow=TRUE)
a <- apply(m, 1, function(i) as(extent(i), "SpatialPolygons"))
pp <- bind(a)

有关更复杂的多边形,请参见?raster::spPolygons