2016-12-07 24 views
0

我非常兴奋传单与R的空间能力相结合,但我非常需要在地图上移动标记和/或绘制路径的可能性。据我看到,Leaflet R软件包没有这个选项,尽管原来的Java版本可能会被强制使用。你有什么主意吗?传单和R的动画标记移动和/或路径轨迹

+0

这可能与** leaflet.extras **包(目前仅在github上)https://github.com/bhaskarvk/leaflet.extras。一个例子可以在这里找到http://rpubs.com/bhaskarvk/leaflet-draw – TimSalabim

+0

对不起,我只是看到“在地图上画功能”的能力添加到这里。网站上的任何动画究竟在哪里? – Hendrik

+0

你对动画究竟意味着什么?时间动画? – TimSalabim

回答

0

这个问题是相当高级的,但有人说,有一个答案here,提供了一个解决方案,在闪亮的应用程序中绘制地图上的点。

如果要在点之间添加线条并显示所走过的路线,请使用addPolylines()。例如:

library(shiny) 
library(dplyr) 
library(leaflet) 

travel <- data.frame("time" = c("6/20/17 13:32", "6/20/17 13:33", "6/20/17 13:34", "6/20/17 13:35", "6/20/17 13:36", "6/20/17 13:37"), 
      "lat" = c(59.313833, 59.312333, 59.309897, 59.307728, 59.300728, 59.298184), 
      "lon" = c(18.070431, 18.07431, 18.085347, 18.076543, 18.080761, 18.076176), 
      stringsAsFactors = F) %>% 
      mutate(
      time = as.POSIXct(time, format = "%m/%d/%y %H:%M") 
     ) 

# define ui with slider and animation control for time 
ui <- fluidPage(
      sliderInput(inputId = "time", label = "Time", min = min(travel$time), 
      max = max(travel$time), 
      value = min(travel$time), 
      step=60, # set to increment by 60 seconds, adjust appropriately 
      animate=T), 
      leafletOutput("mymap") 
) 

server <- function(input, output, session) { 
    points <- reactive({ 
     travel %>% 
      filter(time == input$time) 
    }) 

    history <- reactive({ 
     travel %>% 
      filter(time <= input$time) 
    }) 

    output$mymap <- renderLeaflet({ 
     leaflet() %>% 
      addTiles() %>% 
      addMarkers(lng = ~lon, 
         lat = ~lat, 
         data = points()) %>% 
      addMarkers(lng = ~lon, 
         lat = ~lat, 
         data = history()) %>% 
      addPolylines(lng = ~lon, 
         lat = ~lat, 
         data = history()) 
    }) 
} 

shinyApp(ui, server)