我想创建一个带侧边栏的地图,您可以在其中选择时间段的范围。我们的想法是,地图仅显示在此期间开业的酒店的商标。我不知道这样做,所以我尝试使用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)
})
}
)
答案 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功能更好的工具。