You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny animation - leaflet地图动画闪烁问题求助

解决方法

闪烁的核心原因是你在更新点位时先执行了clearShapes()和clearMarkers()清空全部图层,再重新添加点位,两个操作的时间差导致了视觉闪烁。你可以通过给动画点位指定固定layerId,仅针对性更新对应图层,跳过全量清空步骤解决问题。

修改后的完整可运行代码如下:

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()) %>%
            # 仅移除指定的动画点位图层,不清空全部图层
            removeMarker(layerId = "anim_point") %>%
            addCircleMarkers(lng = ~Lon, lat = ~Lat,
                         radius = 5, opacity = 1, fillOpacity = 1, color = "blue",
                         layerId = "anim_point") 
              }) 
}


shinyApp(ui = ui, server = server)

内容的提问来源于stack exchange,提问作者user2602640

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 06:21:03