I am trying to create an interactive web map in R to display storms using Shiny, Leaflet and rCharts (the structure is freely based on the http://ramnathv.imtqy.com/bikeshare application).
The idea is that the user selects one storm name at a time (df $ Name), and the markers for this storm (lat / long) are displayed on the sheet map (with zoom in / out function).
I cannot get Flyer to load a new map and markers for each individual storm name. Any help / advice would be greatly appreciated!
Here's what the data looks like (TCs.Rda) (sample data file downloaded here ):
Year Name Wind lat long 2010 BONNIE 15 30.100 -91.000 2010 FIVE 25 30.000 -88.900 2010 FIVE 25 30.400 -88.800 2010 FIVE 25 30.800 -88.600
server.R
library(shiny); library(rCharts); library(leaflet) load("TCs.Rda") name <- sort(unique(data$Name)) shinyServer(function(input, output){ dataset <- reactive({ df <- data[data$Name == input$name, ] }) output$add <- renderText({paste("Storm name:", input$name)}) output$Controls <- renderUI({ list(selectInput("name", "Select storm", name, selected=name[1])) }) output$myChart <- renderMap({ df <- dataset() map <- Leaflet$new() map$setView(c(35, -80),zoom=5) map$tileLayer(provider='Stamen.TonerLite') for (i in 1:nrow(df)) { map$marker(c(df[i, "lat"], df[i, "long"]), bindPopup=df[i, "Wind"])} map$set(dom='myChart') map$enablePopover(TRUE) map$fullScreen(TRUE) map }) })
ui.R
library(shiny); library(rCharts); library(leaflet) shinyUI(pageWithSidebar( headerPanel("Storm tracks"), sidebarPanel(h3("My subtitle"), uiOutput("Controls")), mainPanel( tabsetPanel( h3(textOutput("add")), tabPanel("map", tags$style(".leaflet {height: 400px;}"),