0

我想在我的情节中添加一些具有特殊范围的框。

例子

     gh <- raster()
     gh[] <- 1:ncell(gh)
     SP <- spsample(Spatial(bbox=bbox(gh)), 10, type="random")

然后绘制它们

  levelplot(gh, col.regions = rev(terrain.colors(255)), cuts=254, margin=FALSE) +
  layer(sp.points(SP, col = "red"))

这绘制了一个带有多个十字架的地图,但我需要绘制一个具有空间范围的框:

     extent(gh) = extent(c(xmn=-180,xmx=180,ymn=-90,ymx=90))
      e6 <- extent( 2  , 8 , 45   , 51  )

在此处输入图像描述

我想添加e6到情节中并将数字2放入框中。请提供任何提示

4

1 回答 1

2

Extent对象转换为SpatialPolygons,并使用 提取其质心coordinates

library("raster")
library("sp")
library("rasterVis")

gh <- raster()
gh[] <- 1:ncell(gh)
SP <- spsample(Spatial(bbox=bbox(gh)), 10, type="random")

e6 <- extent( 2, 8, 45, 51)
e6pol <- as(e6, 'SpatialPolygons')
centroid <- coordinates(e6pol)

levelplot(gh, col.regions = rev(terrain.colors(255)), cuts=254, margin=FALSE) +
    layer({sp.points(SP, col = "red")
           sp.polygons(e6pol)
           panel.text(centroid[,1], centroid[,2], '2')
           })

结果

于 2014-02-22T18:33:26.260 回答