Можно обновить sh визуализированную визуализацию в Shiny при повторном нажатии на игру ??
Например, давайте посмотрим на этот код из этого поста: бегунок времени с листовкой / R .
Я немного его изменил: (1) я фильтрую значение в реактивном по точному моменту времени и (2) я удаляю ClearShapes () из LeafletProxy, чтобы получить кумулятивный вид. Последний пункт очень важен.
Сначала код работает хорошо, но когда я снова нажимаю кнопку воспроизведения, круги из последнего l oop не исчезают.
Итак, в заключение, мне нужно перезапустить листовку в ее первоначальном виде при повторном нажатии на игру. Есть ли способ добиться этого? Или для достижения лучшего перехода с ClearShapes.
library(shiny)
library(dplyr)
library(leaflet)
# Fake data
df <- data.frame(lng = c(-5, -5, -5, -5, -15, -15, -10),
lat = c(8, 8, 8, 8, 33, 33, 20),
year = c(2018, 2018, 2018, 2017, 2017, 2017, 2016),
stringsAsFactors = FALSE)
ui <- bootstrapPage(
tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
leafletOutput("map", width = "100%", height = "100%"),
absolutePanel(top = 10, right = 10,
style="z-index:500;", # legend over my map (map z = 400)
tags$h3("map"),
sliderInput("periode", "Chronology",
min(df$year),
max(df$year),
value = min(df$year),
step = 1,
animate = animationOptions()
)
)
)
server <- function(input, output, session) {
# reactive filtering data from UI
reactive_data_chrono <- reactive({
df %>%
filter(year == input$periode)
})
# static backround map
output$map <- renderLeaflet({
leaflet(df) %>%
addTiles() %>%
fitBounds(~min(lng), ~min(lat), ~max(lng), ~max(lat))
})
# reactive circles map
observe({
leafletProxy("map", data = reactive_data_chrono()) %>%
addCircles(lng=~lng,
lat=~lat)
})
}
shinyApp(ui, server)