使用 leaflet 和 xts 在 R 中制作动画地图
Animate map in R with leaflet and xts
我想在 R 中构建一个带有时间光标的动画地图。
我有时间序列 (xts),我想在地图上表示。
library(xts)
library(leaflet)
date<-seq(as.POSIXct("2015-01-01"), as.POSIXct("2015-01-10"), by=86400)
a<-xts(1:10,order.by=date)
b<-xts(5:14,order.by=date)
df = data.frame(Lat = 1:10, Long = rnorm(10),Id=letters[1:10])
leaflet() %>% addCircles(data = df,popup =df$Id)
#popup =paste(df$Id, xts value) time cursor on the map
有没有办法用传单包做到这一点?
我还没有尝试 rmaps 包。
谢谢
有个简单的例子
图书馆:
library(shiny)
library(xts)
library(leaflet)
library(dplyr)
数据:
date<-seq(as.Date("2015-01-01"), as.Date("2015-01-10"), by="day")
a<-xts(1:10,order.by=date)
df = data.frame(Lat = rnorm(1)+10, Long = rnorm(1),Id=a)
data_a<-data.frame(a)
data_a1<-data_a %>%
mutate("Lat" =as.numeric(df[1,1]),"Long"=as.numeric(df[2,1]),"Date"=rownames(data_a))
闪亮应用程序:
ui <- fluidPage(
sliderInput("time", "date",min(date),
max(date),
value = max(date),
step=1,
animate=T),
leafletOutput("mymap")
)
server <- function(input, output, session) {
points <- reactive({
data_a1 %>%
filter(Date==input$time)
})
output$mymap <- renderLeaflet({
leaflet() %>%
addMarkers(data = points(),popup=as.character(points()$a))
})
}
shinyApp(ui, server)
如果在上面的公式中加入以下内容,就可以看到方块了
#in data
tilesURL <- "http://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}"
#in server replace
output$mymap <- renderLeaflet({
leaflet() %>%
addTiles(tilesURL)%>%
addMarkers(data = points(),popup=as.character(points()$a))
})
我想在 R 中构建一个带有时间光标的动画地图。
我有时间序列 (xts),我想在地图上表示。
library(xts)
library(leaflet)
date<-seq(as.POSIXct("2015-01-01"), as.POSIXct("2015-01-10"), by=86400)
a<-xts(1:10,order.by=date)
b<-xts(5:14,order.by=date)
df = data.frame(Lat = 1:10, Long = rnorm(10),Id=letters[1:10])
leaflet() %>% addCircles(data = df,popup =df$Id)
#popup =paste(df$Id, xts value) time cursor on the map
有没有办法用传单包做到这一点? 我还没有尝试 rmaps 包。
谢谢
有个简单的例子
图书馆:
library(shiny)
library(xts)
library(leaflet)
library(dplyr)
数据:
date<-seq(as.Date("2015-01-01"), as.Date("2015-01-10"), by="day")
a<-xts(1:10,order.by=date)
df = data.frame(Lat = rnorm(1)+10, Long = rnorm(1),Id=a)
data_a<-data.frame(a)
data_a1<-data_a %>%
mutate("Lat" =as.numeric(df[1,1]),"Long"=as.numeric(df[2,1]),"Date"=rownames(data_a))
闪亮应用程序:
ui <- fluidPage(
sliderInput("time", "date",min(date),
max(date),
value = max(date),
step=1,
animate=T),
leafletOutput("mymap")
)
server <- function(input, output, session) {
points <- reactive({
data_a1 %>%
filter(Date==input$time)
})
output$mymap <- renderLeaflet({
leaflet() %>%
addMarkers(data = points(),popup=as.character(points()$a))
})
}
shinyApp(ui, server)
如果在上面的公式中加入以下内容,就可以看到方块了
#in data
tilesURL <- "http://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}"
#in server replace
output$mymap <- renderLeaflet({
leaflet() %>%
addTiles(tilesURL)%>%
addMarkers(data = points(),popup=as.character(points()$a))
})