我有一个闪亮的应用程序,用户可以选择显示特定的传单地图(51 个可用),或所有传单地图(51 个,11 列和 5 行)。
为了在同一个图上显示多个传单地图,我使用latticeView,它在闪亮的应用程序之外运行良好,但不使用renderleaflet显示。
我应该使用哪种渲染?是否可以对多个地图和单个地图使用相同的渲染,因为它是相同的绘图 ID?
代表:
require(leaflet)
require(leafsync)
require(shiny)
tilesURL <- "http://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}"
basemap <- list()
for(n in 1:51) {
basemap[[n]] <- basemap1 <- leaflet() %>%
addTiles(tilesURL)
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("nb", "Select number", choices = c("All", 1:51))
),
mainPanel(
leafletOutput("map")
)
)
)
server <- function(input, output, session) {
observe({
if(input$nb=="All") {
output$map <- renderLeaflet({
latticeView(basemap, ncol=11)
})
} else {
output$map <- renderLeaflet({
basemap[[as.numeric(input$nb)]]
})
}
})
}
shinyApp(ui, server)
如果我们选择 1 到 51 之间的数字,此代码将显示地图,但如果我们选择“全部”作为输入,则不会。