paragemini / CTA

Analyzing GTFS feed of Chicago
0 stars 0 forks source link

Use addPlayback (leaflet.extras2) to show an instance of time : CTA #15

Open paragemini opened 2 years ago

paragemini commented 2 years ago
library(leaflet)
library(leaflet.extras2)
library(sf)
library(htmlwidgets)

## Single Elements
data <- sf::st_as_sf(leaflet::atlStorms2005[1:5,])
data$Name <- as.character(data$Name)
data <- st_cast(data, "POINT")
data$time <- unlist(lapply(rle(data$Name)$lengths, function(x) {
  seq.POSIXt(as.POSIXct(Sys.Date()-2), as.POSIXct(Sys.Date()), length.out = x)
}))
data$time <- as.POSIXct(data$time, origin="1970-01-01")
data$label <- paste0("Time: ", data$time)
data$popup = sprintf("<h3>Customized Popup</h3><b>Name</b>: %s<br><b>Time</b>: %s",
                     data$Name, data$time)
data <- split(data, f = data$Name)
x <- leaflet() %>%
  addProviderTiles(providers[[113]]) %>%
  addPlayback(data = data,
              popup = ~popup,
              label = ~label,
              popupOptions = popupOptions(offset=c(0,-35)),
              labelOptions = labelOptions(noHide = TRUE),
              options = playbackOptions(radius = 3,
                                        tickLen = 1000000,
                                        speed = 5000,
                                        maxInterpolationTime = 10000,
                                        transitionpopup = FALSE,
                                        transitionlabel = FALSE,
                                        playCommand = "Let's go",
                                        stopCommand = "Stop it!",
                                        color = c("red","green","blue",
                                                  "orange","yellow")),
              pathOpts = pathOptions(weight = 5))
saveWidget(x,"Circulations.html")