我正在try 根据用户 Select 的内容创建几张传单 map .我试图制作一个可复制的例子.
我得到了几行代码,但我无法将用户 Select 连接到我的 map .下面你可以找到我试图做的事情.谢谢你的帮助.
library(sf)
library(leaflet)
library(mapview)
library(mapedit)
library(DT)
library(viridis)
library(leafem)
nc <- st_read(system.file("shape/nc.shp", package="sf")) %>% head(3)
ui = fluidPage(
titlePanel("Maps"),
sidebarPanel(
checkboxGroupInput('MapNumber','Select Maps', choices = c("Ashe", "Alleghany", "Surry"), selected = "Ashe"),
conditionalPanel(condition="output.MapNum=='1'",
fluidRow(
column(12,
leafletOutput("Map1a")
)
)
),
conditionalPanel(condition="output.MapNum=='2'",
fluidRow(
column(6,
leafletOutput("Map2a")
),
column(6,
leafletOutput("Map2b")
)
)
),
conditionalPanel(condition="output.MapNum=='3'",
fluidRow(
column(6,
leafletOutput("Map3a")
),
column(6,
leafletOutput("Map3b")
),
column(6,
leafletOutput("Map3c")
)
)
)
)
)
server = function(input, output) {
MapInput1a<-reactive({
req(length(input$MapNumber)==1)
input$MapNumber[1]
})
MapInput2a<-reactive({
req(length(input$MapNumber)==2)
input$MapNumber[1]
})
MapInput2b<-reactive({
req(length(input$MapNumber)==2)
input$MapNumber[2]
})
MapInput3a<-reactive({
req(length(input$MapNumber)==3)
input$MapNumber[1]
})
MapInput3b<-reactive({
req(length(input$MapNumber)==3)
input$MapNumber[2]
})
MapInput3c<-reactive({
req(length(input$MapNumber)==3)
input$MapNumber[3]
})
output$Map1a<-renderLeaflet({leaflet()%>% addTiles(group = "OSM") %>%
addProviderTiles("CartoDB", group = "CartoDB") %>%
addProviderTiles("Esri.WorldImagery", group = "Esri.WorldImagery") %>%
addFeatures("?")})# do not know how to plot the feature correctly, and I do not know how to do for output$Map2a,
# output$Map2b, etc.
}
shinyApp(ui, server)