仅显示用layers选择的多边形的图例Control baseGroup Leaflet R

时间:2018-10-31 14:51:37

标签: r leaflet legend

我在R中有一个包含八个不同图层的传单地图,我希望用户一次只能选择一个图层。这就是为什么我使用addLayersControl(baseGroups())选项,该选项提供了“单选按钮”选择控件。

由于我获得了8个图例,因此我一直在努力仅显示所选图层的图例。我想出了如何使用overlayGroups做到这一点,但还没有使用baseGroups做到这一点。

这是一个可复制的示例:

library(RColorBrewer)
library(dplyr)
library(leaflet)


factpal <- colorFactor(brewer.pal(n = 11, name ="Spectral") , gadmCHE$NAME_1) 
factpal2 <- colorFactor(brewer.pal(n = 11, name ="Spectral") , gadmCHE$HASC_1) 


leaflet() %>%
  addProviderTiles("OpenStreetMap.BlackAndWhite", options = providerTileOptions(opacity = 1)) %>% 
  addPolygons(
    data = gadmCHE, 
    stroke = TRUE, fillOpacity = 0.5, smoothFactor = 0.5,
    color = "black", opacity = 1,
    group = "NAME_1", 
    fillColor = ~factpal(gadmCHE$NAME_1)) %>%
  addPolygons(
    data = gadmCHE, 
    stroke = TRUE, fillOpacity = 0.5, smoothFactor = 0.5,
    color = "black", opacity = 1,
    group = "HASC_1", 
    fillColor = ~factpal(gadmCHE$HASC_1))  %>%
  addLayersControl(baseGroups = c("NAME_1", "HASC_1"), options = layersControlOptions(collapsed = FALSE) )  %>%
  addLegend(pal = factpal2, 
            values = gadmCHE$TYPE_1,
            title = "HASC_1", 
            group = "HASC_1") %>% 
  addLegend(pal = factpal, 
            values = gadmCHE$NAME_1, 
            opacity = .5, 
            title = "NAME_1", 
            group = "NAME_1")

任何建议如何仅在选择图层时显示图例?

0 个答案:

没有答案