Создание реактивной группы флажков в Shiny с Leaflet - PullRequest
0 голосов
/ 11 октября 2018

В настоящее время создается приложение Shiny, в котором есть листовка с картой.Мне удалось успешно создать ползунок с переменной в моем наборе данных, которая соответствующим образом фильтрует сопоставленные данные, но я бы предпочел, чтобы это была группа реактивных флажков, и у меня много проблем с ее созданием.

Вот мои данные:

View(test)

person location ordinal_data a WA 1 b WA 4 c WA 3 d WA 5 e WA 5 f WA 1 g WA 2 h WA 2 i WA 3 j WA 1 k WA 4 l WA 5 m WA 4

Вот мой интерфейс (работает слайдер, но я пытаюсь установить флажок - неисправная частьпомечен #:

ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(
id = "controls", 
class = "panel panel-default",
fixed = T,
draggable = T,
top = 60, left = "auto", right = 20, bottom = "auto",
width = 200, height = "auto",
h2("Control panel"),

#FUNCTIONAL SLIDER
sliderInput(
  "range",
  "Ordinal Data",
  min(test$ordinal_data),
  max(test$ordinal_data),
  value = range(test$ordinal_data),
  step = 1
),

#MALFUNCTIONING CHECKBOX GROUP
#checkboxGroupInput("checkbox",
#                   "Ordinal Data",
#                   choices = unique(as.character(test$ordinal_data)))
  )
)

и вот мой сервер (вы увидите, что неисправный флажок обозначен #):

server <- function(input, output, session) {

   filteredDATA <- reactive({
    test[test$ordinal_data >= input$range[1] & 
    test$ordinal_data <= input$range[2],]
    })

  # filteredDATA_checkbox <- reactive({
  #   test[input$checkbox == 1 & input$checkbox == 2 & input$checkbox == 3 & 
  #  input$checkbox == 4 & input$checkbox == 5]
  # })

  output$map <- renderLeaflet({
    leaflet(test) %>%
      addTiles() %>%
      setView(lng = -3.754877, lat = 56.36077, zoom = 6) %>% 
      addLegend(
        pal = pal,
        values = ~ simplified_wgs_las$CHECK,
        opacity = 0.7,
        title = "Legend",
        position = "bottomright"
      )
  })

#the functional slider
  observe({
    leafletProxy("map", data = filteredDATA()) %>%
      addPolygons(
        data = simplified_wgs_las,
        fillColor = ~ pal(CHECK),
        weight = 1,
        opacity = 2,
        color = "black",
        fillOpacity = 0.7,
        highlight = highlightOptions(
          weight = 2,
          color = "white",
          bringToFront = TRUE
        ),
        label = labels,
        labelOptions = labelOptions(
          style = list("font-weight" = "normal", padding = "3px 8px"),
          textsize = "15px",
          direction = "auto"
        )
      )
  })
}

shinyApp(ui, server)

Все остальное в приложенииработает нормально - любое руководство по включению этой группы флажков было бы наиболее полезным.

...