在传单中将`RasterLayer`添加到`addLayersControl`中

时间:2019-11-28 12:34:32

标签: r leaflet geospatial raster

我必须在R中RasterLayer个对象(raster1raster2)。我想将它们都添加到传单地图中。我也想选择显示或隐藏它们。因此,我想将它们及其名称添加到addLayersControl-选项中。但这是行不通的。它同时显示两个图层,我无法隐藏它们。到目前为止,我的代码看起来像这样。我认为问题在于如何将它们添加到addLayersControl函数中。

leaflet() %>%
  addTiles() %>%
  addRasterImage(raster1, opacity = 0.3) %>% 
  addRasterImage(raster2, opacity = 0.3) %>% 
  addLayersControl(
    baseGroups = c("OSM (default)"),
    overlayGroups = c("raster1", "raster2"),
    options = layersControlOptions(collapsed = FALSE)
  )

我想这很简单,但是我想不出解决办法。

1 个答案:

答案 0 :(得分:0)

addLayersControl help

  

覆盖组
  字符向量,其中每个元素都是的名称。用户可以独立打开或关闭每个叠加组

因此,您需要分组。来自addRasterImage help

  


  光栅图像应属于的组的名称(请参见addTiles下的相同参数)

您的代码必须是这样的:

leaflet() %>%
  addTiles() %>%
  addRasterImage(raster1, opacity = 0.3, group = 'raster1') %>% 
  addRasterImage(raster2, opacity = 0.3, group = 'raster2') %>% 
  addLayersControl(
    baseGroups = c("OSM (default)"),
    overlayGroups = c("raster1", "raster2"),
    options = layersControlOptions(collapsed = FALSE)
  )