Опция «Отменить выбор всех» на pickerInput не работает для пространственных данных - PullRequest
0 голосов
/ 01 апреля 2019

Я строю карту листовки в блестящем и хочу позволить пользователям выбирать несколько автобусных маршрутов на боковой панели. Я хочу использовать 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) 
}

Я хочу, чтобы пользователи могли выбирать «Все» и возвращать все маршруты или выбирать по определенному номеру маршрута. Должен быть способ удаления маршрутов с карты.

...