如何将map_shape_click作为反应变量包含在Shiny中?

时间:2019-05-02 15:52:33

标签: r shiny leaflet reactive

我想制作一个闪亮的应用程序,其中多边形的颜色取决于单击的多边形。当一切都是静态的时,我可以使它工作,但是使用reacitve值会使我不寒而栗。

本质上,我认为我要做的是将调色板的domain参数和fill color参数设置为反应性值。

stgt.counts是我的shapefile。

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'必须是数字'-我想这是因为zone和domain是字符串。是吗?这是我第一个使用Reacts的闪亮应用程序我想有一种更好的方法来完成此操作。我们非常感谢您的帮助。

0 个答案:

没有答案