У меня проблемы с настройкой блеска с картой листовки.Как заставить карту отображать мои обновленные данные после того, как пользователь выбрал одно из трех выпадающих меню;Карта листов не обновляет точки на основе трех выпадающих списков, которые в основном фильтруют столбцы в одном кадре данных.
Я пытаюсь воссоздать этот репо , но с помощью 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)
Моя карта загружается с базовым вызовом листовки, но начинает зависать после наблюдения и прокси листовкиназывается.Есть ли способ обойти это?