Листовка не отображается в Shiny - PullRequest
0 голосов
/ 05 апреля 2019

У меня проблемы с настройкой блеска с картой листовки.Как заставить карту отображать мои обновленные данные после того, как пользователь выбрал одно из трех выпадающих меню;Карта листов не обновляет точки на основе трех выпадающих списков, которые в основном фильтруют столбцы в одном кадре данных.

Я пытаюсь воссоздать этот репо , но с помощью SelectInputs.В моем исходном фрейме данных содержится около 494000 записей, и он находится в длинном формате.

Вот воспроизводимый пример:

gdp = read.xlsx("mexico2.xlsx", header= T) %>%
  as.data.frame()

mexico <- readOGR("mexico.shp", layer = "mexico", encoding = "UTF-8")

mexico_shape@data <- left_join(gdp, mexico@data, by = "census")

#UI.R

ui <- dashboardPage(skin = "blue",
  dashboardHeader(title = "Mexico Data",
                  titleWidth = 350),

  dashboardBody(
    tabItems(
       tabItem ("map1", 
              column(9,
                   leafletOutput("mex_map", height = "600px", width = "100%") 
              ),
              column(width = 3,
                     box(
                       width= NULL,
                       selectInput('indicator', 'Select an indicator', 
                                   choices = unique(mexico_shape@data$variable)),
                                   selected = mexico_shape@data$variable[1]),
                       selectInput("year", 'Select year', 
                                   choices = unique(mexico_shape@data$Year),
                                   selected = mexico_shape@data$Year[25]),
                       selectInput("vote", "By vote share", choices = unique(mexico_shape@data$`leading party`)))),

      tabItem("data1", 
                  dataTableOutput("table_mexico")
              )
    )))  

server.R

server <- function(input, output, session) {


subsetData <- reactive({
  df <- mexico_shape@data %>% 
    filter(variable == input$indicator) %>% 
    filter(Year == input$year) %>% 
    filter(`leading party` == input$vote)
  return(df)
})

lat = 18.5937
lng = 80.9629
zoom = 4

output$mex_map <- renderLeaflet({

 subsetData() %>% leaflet() %>% 
    addProviderTiles("CartoDB.Positron") %>% 
    addPolygons(data = mexico_shape, fillColor = ~qpal(value), fillOpacity = 0.6, color = "white", weight = 2)
    setView(lat = lat, lng = lng, zoom = zoom)

})


  observe({

   qpal <- colorQuantile("YlGn", mexico_shape@data$value, n = 5, na.color = "#bdbdbd")

    leafletProxy("mex_map", data = subsetData()) %>% 
      clearShapes() %>% 
     addPolygons(data = mexico_shape, fillColor = ~qpal(value), fillOpacity = 0.6, color = "white", weight = 2)

})


  }


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

Моя карта загружается с базовым вызовом листовки, но начинает зависать после наблюдения и прокси листовкиназывается.Есть ли способ обойти это?

...