Как включить map_shape_click в качестве реактивной переменной в блестящем? - PullRequest
0 голосов
/ 02 мая 2019

Я хотел бы сделать блестящее приложение, в котором цвет полигонов зависит от того, на каком полигоне щелкнули. Я могу заставить его работать, когда все статично, но использование значений activitve меня расстраивает.

По сути, я думаю, что мне нужно установить аргумент домена палитры и аргумент цвета заливки как реактивные значения.

stgt.counts - мой шейп-файл.

app <- shinyApp(

  ui = bootstrapPage(

    leafletOutput('map'),
    textOutput('text')

  ),
  server = function(input, output) {

    filtered.zone <- reactive({
      paste0("count", input$map_shape_click$id)
    })

    filtered.domain <- reactive({
      paste0("stgt.counts$count", input$map_shape_click$id)
    })




    output$map <- renderLeaflet({ 

      zone <- filtered.zone()
      domain <- filtered.domain()
      bins <- c(0,1,2,5,6,7,8)
      pal <- colorBin("YlOrRd", domain = domain, bins = bins)

      m <- leaflet(stgt.counts) %>%
        addProviderTiles(providers$Stamen.Toner) 

      m %>% addPolygons(
        fillColor = ~pal(zone),
        weight = 2,
        layerID = ~NO,
        opacity = 1, 
        color = "white",
        dashArray = "3",
        fillOpacity = 0.7
      )


    })

    output$text <- renderText({
      if (is.null(input$map_shape_click$id)) return()
      print(input$map_shape_click$id)
    })

  }
)
runApp(app)

Текущее предупреждение, которое я получаю: «Предупреждение: ошибка в cut.default:« x »должен быть числовым». Я полагаю, это потому, что зона и домен являются строками. Это верно? Поскольку это мое первое блестящее приложение, использующее реактивы Я предполагаю, что есть намного лучший способ сделать это. Любая помощь высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...