R 使用不同列中的多个年份在Shiny中创建传单地图

R 使用不同列中的多个年份在Shiny中创建传单地图,r,shiny,leaflet,shinyapps,R,Shiny,Leaflet,Shinyapps,我正在尝试创建一个地图,用户可以在地图上选择按年份查看追踪头列表中的追踪计数数据。我已经决定只做一年,虽然不是很优雅,但现在我正在尝试包括多年。这里是一个简单的数据集,它代表了我正在使用的数据集 site <- c("Browns Canyon", "Hancock", "Monarch Crest") lat <- c("38.76210", "38.70581", "38.49185") long <- c("-105.9776", "-106

我正在尝试创建一个地图,用户可以在地图上选择按年份查看追踪头列表中的追踪计数数据。我已经决定只做一年,虽然不是很优雅,但现在我正在尝试包括多年。这里是一个简单的数据集,它代表了我正在使用的数据集

     site <- c("Browns Canyon", "Hancock", "Monarch Crest")
     lat <- c("38.76210", "38.70581", "38.49185")
     long <- c("-105.9776", "-106.3405", "-106.3171")
     agency <- c("BLM", "USFS", "BLM")
     Total2016 <- ("353", "1112", "9875")
     Total2017 <- c("0", "138", "7435")
     Total2018 <- c("201", "145", "16448")
     Total2019 <- c("153", "0", "9655")
     alluse <- data.frame(site, lat, long, Total2016, Total2017, Total2018, Total2019)

site我试图复制您的代码,但是示例数据集中缺少
alluse$trailhead
alluse$agency
。尽管如此,我还必须指出,即使你在同一时间实现了所有年份的规划(这是可行的),也是没有用的。由于所有年份中的同一点具有相同的坐标,因此唯一可见的点将是最后绘制的年份。您可以这样做,但在多个选定年份中出现的这些点中,您将无法可视化或生成弹出窗口,除非是最后一个绘制年份。您好。我已经修改了代码,去掉了alluse$trailhead,它现在是alluse$site,并在alluse中添加了代理栏。这是同时观察不同年份的一个好观点。这是我工作的客户想要的东西,但现在你已经指出了,不用担心这一点是完全有道理的。所以现在我只想要选择不同年份的功能,我仍然对如何清除弹出窗口感到困惑。
     ui <- navbarPage(
     "Visitor Usage", id = "nav",
     tabPanel("Trailhead Visitation", div(class = "outer",
     tags$head(includeCSS("www/style.css")),
     leafletOutput("UsageMap", width = "100%", height = "100%"),
      absolutePanel(id = "controls", class = "panel panel-default", fixed = TRUE,
                           draggable = TRUE, top = 70, left = "auto", right = 20, bottom =    
                           "auto", width = 330, height = "auto",

      h2("Trailhead Explorer"),

      selectInput("year", label = h4("Year:"),
                  choices = c("2016" = "Total2016",
                              "2017" = "Total2017",
                              "2018" = "Total2018",
                              "2019" = "Total2019"),
                  selected = "", width = "90%", multiple = TRUE),

      tags$div(id="cite", 'Data provided by USFS and BLM and compiled for Chaffee County 
                           Recreation in Balance')
                                   ))))
server <- function(input, output, session){

selectedYear <- reactive({switch(input$year,
                         "2016" = alluse$Total2016,
                         "2017" = alluse$Total2017,
                         "2018" = alluse$Total2018,
                         "2019" = alluse$Total2019)
   })

pal1 <- colorBin(palette = "Reds", domain = NULL, bins = 10, pretty = FALSE)

output$UsageMap <- renderLeaflet({
         leaflet(alluse) %>% 
         addProviderTiles("Esri.WorldTopoMap") %>%
        setView(lng = -106.183908, lat = 38.766663, zoom = 9) %>%
        addCircles(data = alluse, lng = alluse$long, lat = alluse$lat,
         weight = 1, radius = sqrt(selectedYear)*30,
         fillColor = ~pal1(selectedYear()),
         popup = paste0(h3("Trailhead:"), alluse$site), color = "#BDBDC3", fillOpacity = 0.8, 
          weight = 1) %>%
  addLegend("bottomleft", pal = pal1, values = selectedYear(), title =   
  "Trailhead Usage")

   })

    observeEvent(input$year, {
    trail_popup <- paste0(h3("Trailhead:"), selectedYear()$site,
                  h4("Total 2016:"), selectedYear()$Total2016,
                  h4("Total 2017:"), selectedYear()$Total2017,
                  h4("Total 2018:"), selectedYear()$Total2018,
                  h4("Total 2019:"), selectedYear()$Total2019)

    leafletProxy("UsageMap", data = selectedYear()) %>%
    clearGroup(c("year"), fillColor = "orange",
         popup = trail_popup, 
         color = "#BDBDC3",
         fillOpacity = 0.8,
         weight = 5)
     })
     }