我想知道,我们如何在闪亮的R中更改传单地图的大小。例如,请考虑以下代码:
library(leaflet)
library(shiny)
app = shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel( sliderInput("obs",
"Number of observations:",
min = 0,
max = 1000,
value = 500)
),
mainPanel(
leafletOutput('myMap', width = "200%", height = 1400)
)
)
),
server = function(input, output) {
map = leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 17)
output$myMap = renderLeaflet(map)
}
)
if (interactive()) print(app)
要更改地图的大小,我可以在ui中更改width和height参数。当我试图在服务器中更改相同时,它没有成功。
我不知道,任何人都可以通过服务器更改ui中的参数。我试过这种方法,但它没有用。
library(leaflet)
library(shiny)
Height = 1000
app = shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel( sliderInput("Height",
"Height in Pixels:",
min = 100,
max = 2000,
value = 500)
),
mainPanel(
leafletOutput('myMap', width = "200%", height = Height)
)
)
),
server = function(input, output) {
Height <- reactive(input$Height)
map = leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 17)
output$myMap = renderLeaflet(map)
}
)
if (interactive()) print(app)
我只是想知道,如何使地图的大小动态,以便我可以控制它。非常感谢任何帮助。
答案 0 :(得分:3)
您需要在服务器端呈现leafletOutput
喜欢
app = shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel( sliderInput("Height",
"Height in Pixels:",
min = 100,
max = 2000,
value = 500)
),
mainPanel(
uiOutput("leaf")
)
)
),
server = function(input, output) {
output$leaf=renderUI({
leafletOutput('myMap', width = "200%", height = input$Height)
})
output$myMap = renderLeaflet(leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 17))
}
)
答案 1 :(得分:1)
但是以后不能使用leafletProxy !!
app = shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel( sliderInput("Height",
"Height in Pixels:",
min = 100,
max = 2000,
value = 500),
actionButton("mbutton", "show marker")
),
mainPanel(
uiOutput("leaf")
)
)
),
server = function(input, output) {
output$leaf=renderUI({
leafletOutput('myMap', width = "200%", height = input$Height)
})
output$myMap = renderLeaflet(leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 17))
observeEvent(input$mbutton,{
leafletProxy("myMap") %>%
addMarkers(-93.65, 42.0285)
})
}
)