Я строю карту листовки в блестящем и хочу позволить пользователям выбирать несколько автобусных маршрутов на боковой панели. Я хочу использовать pickerInput () из-за функции выбора / отмены выбора всех. Однако функция отмены выбора не работает в моем коде.
Я попытался добавить оператор if / else к моему вызову visibleEvent (), основываясь на этом вопросе pickerInput Not Clearing All Choice . Это не оказало заметного влияния на мой код.
library(shiny)
library(sf)
library(tidyverse)
library(leaflet)
library(shiny)
library(sp)
library(rsconnect)
library(shinyWidgets)
routes <- st_read(dsn = "data/MetroTransitData183.gdb",
layer = "transitroute", stringsAsFactors= FALSE) %>% st_transform(., crs = 4326)
ui <- fluidPage(
# Application title
titlePanel("RKAAMP Priorty Tract Travelshed Viewer"),
sidebarLayout(
sidebarPanel(
pickerInput("routes",
"Select Routes by Route Number:",
choices = as.list(routes$ROUTE_NUM),
multiple = TRUE,
options= pickerOptions(actionsBox = TRUE),
width = "75%"
)
)
)
)
server <- function(input, output, session) {
select_routes <- reactive({
routes %>% filter(routes$ROUTE_NUM %in% input$routes)
})
output$travelshed_map <- renderLeaflet({
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
setView(lng = -122.217064, lat = 47.482880, zoom = 11 )
})
observeEvent(input$routes, {
proxy <- leafletProxy("travelshed_map")
if(!is.null(input$routes) && routes$ROUTE_NUM %in% input$routes) {
proxy %>%
addPolylines(data= select_routes(), color = "Black", weight = 2,
opacity = 0.3, group = "routes" )
} else {
proxy %>% clearGroup("routes")
}
}, ignoreNULL = TRUE)
}
Я хочу, чтобы пользователи могли выбирать «Все» и возвращать все маршруты или выбирать по определенному номеру маршрута. Должен быть способ удаления маршрутов с карты.