См. Следующий MWE:
library(shiny)
library(leaflet)
ui <- fluidPage(leafletOutput("mymap"))
server <- function(input, output, session) {
output$mymap <- renderLeaflet({
leaflet() %>%
addProviderTiles(
providers$Stamen.TonerLite,
group = 'stamen',
options = providerTileOptions(noWrap = TRUE)
) %>%
addProviderTiles(providers$CartoDB.Positron, group = 'cartodb') %>%
addLayersControl(baseGroups = c('stamen', 'cartodb'),
position = 'bottomleft')
})
}
shinyApp(ui, server)
Стандартное поведение LayerControl (addLayersControl) должно появиться после того, как пользователь наведет значок. Вместо этого я хотел бы просмотреть параметры слоя после нажатия на него. Стандартная функция addLayersControl не предлагает такую функциональность. Кто-нибудь знает обходное решение?
Я не знаю, R, но в JS вам нужно добавить параметр collapsed
на ваш L.control.layers
Теперь, если вы хотите, чтобы открыть контроль, вы должны назвать это:
$(".leaflet-control-layers").addClass("leaflet-control-layers-expanded");
Если вы хотите закрыть его:
$(".leaflet-control-layers").removeClass("leaflet-control-layers-expanded");