У меня есть листовка в R, которая содержит восемь разных слоев, я хочу, чтобы пользователь мог выбрать только один слой за один раз. Вот почему я использую опцию addLayersControl (baseGroups ()), которая дает возможность выбора переключателя.
Поскольку у меня восемь легенд, я изо всех сил пытаюсь показать только легенду выбранного слоя. Я выяснил, как это сделать с 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")
Есть предложения, как отображать легенду только при выборе слоя?