leafletパッケージで地図上にランダムにマーカーを打ちつつそれを1秒おきに更新するshiny app
invalidateLaterで制御する感じか。あとはまともなリアルタイムデータソースにつなげばたのしそう。ものはこちら。
コードは以下でOK.
library("shiny") library("leaflet") ui <- bootstrapPage( tags$style(type = "text/css", "html, body {width:100%;height:100%}"), leafletOutput("map", width = "100%", height = "100%") ) server <- function(input, output, session) { output$map <- renderLeaflet({ leaflet() %>% addTiles() %>% setView(139.766084, 35.681382, zoom=14) }) observe({ invalidateLater(1000, session) proxy <- leafletProxy("map") proxy %>% clearMarkers() %>% addMarkers( lng = runif(10, min=139.75, max=139.79), lat = runif(10, min=35.66, max=35.7), layerId = paste0("marker", 1:10)) }) } shinyApp(ui, server)