R Shiny:使用 ShinyWidget pickerInput在传单中取消选择图层



我正在使用ShinyWidget的pickerInput功能,允许用户选择要在传单中显示的多个图层(空间数据(。选中多个框会根据需要显示图层,但是,取消选中输入菜单中的框后,我无法隐藏/取消选择图层。

我的应用程序中的键代码。R 脚本:

tn_data <- c("Rail"="rail1", "Airports"="airports1", "Ferries"="ferries1")
pickerInput(inputId = "pickv", label = "Transportation", choices = tn_data, multiple = TRUE),
rail_vn <- readOGR(dsn = "./geospatial_files/osm", layer = "gis.osm_railways_free_1")
server <- function(input, output, session) {
observeEvent(input$pickv, {
if (input$pickv == "rail1"){  # this diplays just the rail layer
proxy <- leafletProxy("map")
proxy %>% addPolylines(data=rail_vn, weight = 2, group = "railv", color = "#7f0000")}
else {proxy %>% clearGroup("railv")} # this does not work, unable to deselect/hide layer in Leaeflet
}
)

以前,当我使用复选框输入时,我能够使用 clearGroup 函数从传单中取消选择图层,但这在选择器输入时不起作用。

欢迎任何建议,因为我找不到任何类似的示例,其中pickerInput与传单一起使用。

我相信你应该在if之外定义代理,这样也可以在其他上使用。

observeEvent(input$pickv, {
proxy <- leafletProxy("map")
if (input$pickv == "rail1"){  # this diplays just the rail layer
proxy %>% addPolylines(data=rail_vn, weight = 2, group = "railv", color = "#7f0000")}
else {
proxy %>% clearGroup("railv")} # this does not work, unable to deselect/hide layer in Leaeflet
}

最新更新