R / Leaflet: заставить LayersControl появляться после щелчка вместо наведения

1

См. Следующий 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 не предлагает такую функциональность. Кто-нибудь знает обходное решение?

  • 0
    Вы смотрели на этот вариант? leafletjs.com/reference-1.2.0.html#control-layers-collapsed
  • 0
    Да, этот вариант делает его рухнувшим, и это хорошо. Но я не знаю, как сделать так, чтобы он просто открывался по щелчку вместо зависания.
Теги:
leaflet
shiny
r-leaflet

1 ответ

0

Я не знаю, R, но в JS вам нужно добавить параметр collapsed на ваш L.control.layers Теперь, если вы хотите, чтобы открыть контроль, вы должны назвать это:

$(".leaflet-control-layers").addClass("leaflet-control-layers-expanded");

Если вы хотите закрыть его:

$(".leaflet-control-layers").removeClass("leaflet-control-layers-expanded");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню