R中的交互式地图使用传单/闪亮

时间:2016-02-18 04:09:38

标签: r dictionary shiny leaflet

我想创建一个带侧边栏的地图,您可以在其中选择时间段的范围。我们的想法是,地图仅显示在此期间开业的酒店的商标。我不知道这样做,所以我尝试使用selectInput,因为它对我来说似乎有点容易。但似乎我仍然无法使其发挥作用。任何指导将不胜感激。

以下是示例数据框:

Hotel Year   lat        long
  A   2000 41.886337 -87.628472
  B   2005 41.88819  -87.635199
  C   2010 41.891113 -87.63301

这是ui.R:

#ui.R
library(shiny)
library(leaflet)

shinyUI(fluidPage(
  titlePanel("Hotel Map"),
  sidebarLayout(
    sidebarPanel(
      selectInput("year", 
                  label = "Choose Year:",
                  choices = c(2000,2005,2010),
                  selected = 2000
      )),

    mainPanel (leafletOutput("map","100%",300))
  )
))

这是server.R:

library(shiny)
library(leaflet)
source("RStudio\\Map-app")
hotels <- read.csv("RStudio\\Map-app\\ChicagoHotels.csv")

shinyServer(
  function(input, output) {

    output$map <- renderLeaflet({
    df <- hotels[hotels$Year == input$year,]  
    leaflet()  %>%
        addTiles() %>%
        addCircles(data = df)
    })

  }
    )

2 个答案:

答案 0 :(得分:2)

@InfiniteFlashChess这是正确的。

Server.R

library(leaflet)

hotels <- read.table(text = "Hotel Year  latitude        longitude
                              A   2000  41.886337      -87.628472
                              B   2005  41.88819       -87.635199
                              C   2010  41.891113      -87.63301", 
                     header = TRUE)

shinyServer(function(input, output) {

output$map <- renderLeaflet({
  df <- hotels[hotels$Year == input$year,]  
  leaflet()  %>%
    addTiles() %>%
    addMarkers(data = df)
 })

})

Ui.R

library(shiny)
library(leaflet)

shinyUI(fluidPage(
titlePanel("Hotel Map"),
 sidebarLayout(
  sidebarPanel(
   selectInput("year", 
               label = "Choose Year:",
               choices = c(2000,2005,2010),
               selected = 2000
  )),

mainPanel (leafletOutput("map","100%",300))

              )
))

答案 1 :(得分:0)

首先,你应该关注的是mainPanel首先要做的事情。主面板不会接受

leafletMap("map","100%",300)

它要求您输入:

leafletOutput("map", "100%", 300)

或其他一些相关的leafletOuput语句。

设计闪亮的方式,如果你想要输出图形或表格,你需要在server.R文件中创建输出$ map对象,回到ui.R和你的图形只会根据特定的输出语句输出。

此页面包含示例和帮助。

Leaflet link you should really look at, so click me!

感谢您顺便向我介绍传单,这是一个比googleVis软件包的gvisGeoMap功能更好的工具。