来自shinyDashboard的infoBox / valueBox有光泽

时间:2017-02-21 10:46:00

标签: r shiny shinydashboard

我有一个简单的闪亮应用程序,只有一个下拉列表列出阿富汗地区和相同的传单地图。 enter image description here

可以使用link

中的AFG_adm2.shp在此http://www.gadm.org/download访问形状文件

这是应用代码:

library(shiny)
library(leaflet)
library(rgdal)
library(sp)

afg <- readOGR(dsn = "data", layer ="AFG_adm2", verbose = FALSE, stringsAsFactors = FALSE)

ui <- fluidPage(
  titlePanel("Test App"),
  selectInput("yours", choices = c("",afg$NAME_2), label = "Select Country:"),
  leafletOutput("mymap")

)

server <- function(input, output){
  output$mymap <- renderLeaflet({
    leaflet(afg) %>% addTiles() %>%
      addPolylines(stroke=TRUE, color = "#00000", weight = 1) 
  })
  proxy <- leafletProxy("mymap")

  observe({
    if(input$yours!=""){
      #get the selected polygon and extract the label point 
      selected_polygon <- subset(afg,afg$NAME_2==input$yours)
      polygon_labelPt <- selected_polygon@polygons[[1]]@labpt

      #remove any previously highlighted polygon
      proxy %>% removeShape("highlighted_polygon")

      #center the view on the polygon 
      proxy %>% setView(lng=polygon_labelPt[1],lat=polygon_labelPt[2],zoom=7)

      #add a slightly thicker red polygon on top of the selected one
      proxy %>% addPolylines(stroke=TRUE, weight = 2,color="red",data=selected_polygon,layerId="highlighted_polygon")
    }
  })
}

# Run the application 
shinyApp(ui = ui, server = server)

我希望 shinyDashboard 中的infoBoxvalueBox小部件根据用户选择在地图下方显示一些数据(如区域人口)。我怎么能这样做?

1 个答案:

答案 0 :(得分:-1)

您需要更改程序的结构,并需要在UI中添加仪表板页面。

这里有一些参考看看。你会知道!!!

https://rstudio.github.io/shinydashboard/structure.html

https://rdrr.io/cran/shinydashboard/man/valueBox.html