首页 > 解决方案 > 闪亮的动画 - 传单闪烁

问题描述

Shiny 传单动画的闪烁之前已经讨论过(就像这里),但这是一个较旧的帖子。我有一张带有动画点的地图。我之前见过类似的 Shiny 应用程序没有闪烁,但我似乎无法解决这个问题。任何帮助,将不胜感激。下面提供了一个代表。

library(plyr)
library(dplyr)
library(tidyr)

library(shiny)
library(shinydashboard)
library(leaflet)

data <- data.frame(Date = seq(as.Date("2003-01-15"), as.Date("2003-03-17"), 1)) %>%
        mutate(Lon = -105.57, Lat = 64.86)

ui <- navbarPage(" ", id = "nav", 
 column(width = 4,
        uiOutput("animationSlider")),                   
            fluidRow(column(width = 8, leafletOutput("MapAnimate"))))

        
server <- function(input, output, session) {
    output$animationSlider <- renderUI({
        sliderInput("animationSlider2", "Animation period", 
                 min = min(data$Date), max = max(data$Date), value = min(data$Date), step = 1,
                    animate = animationOptions(interval = 200, loop = FALSE))
                                        })
                                        
    IndividualAnimationPoints <- reactive({
        req(input$animationSlider2)
    
        data %>%
            filter(Date == input$animationSlider2)
                                            })
   
    output$MapAnimate <- renderLeaflet({
            leaflet(data, options = leafletOptions(minZoom = 6)) %>%
                setView(lng = -105.6, lat = 64.86, zoom = 8)  %>%
                addProviderTiles("Esri.WorldImagery", layerId = "basetile",
                    options = providerTileOptions())
                                        }) 
                                    
    observe({
        leafletProxy("MapAnimate", data = IndividualAnimationPoints()) %>%
             clearShapes() %>%
             clearMarkers() %>%
            addCircleMarkers(lng = ~Lon, lat = ~Lat,
                         radius = 5, opacity = 1, fillOpacity = 1, color = "blue") 
              }) 
}


shinyApp(ui = ui, server = server)

标签: ranimationshinyleaflet

解决方案


推荐阅读