根据Leaflet标记点击更新多个selectInput小部件

问题描述 投票:0回答:1

我有一个闪亮的应用程序,它使用多个 inputSelection 小部件,用于根据用户输入更新绘图。

selectInput("selectedSites", "Select Site(s) :",
                sensor_locations$description, multiple = TRUE,
                selected = sensor_locations$description)

我现在还希望允许用户通过单击传单地图上放置的标记来选择站点(通过 inputSelection 小部件允许的选择)。

我已按照以下方式完成此操作:通过观察标记上的点击并更新 inputSelection 框。

observeEvent(input$sitemap_marker_click, {
    click <- input$sitemap_marker_click
    print(click)
    print(click$id)
    updateSelectInput(session, "selectedSites", 
                      selected = click$id)
  })

这工作得很好,只是它只适合单个输入。 inputSelect 小部件上的先前选择将被删除,并由标记单击所代表的站点进行更新。

但是我想添加到现有的选择中而不是替换它。

r shiny r-leaflet
1个回答
1
投票

通过包含先前选择的值的组合并单击标记值,设法部分解决了该问题。

observeEvent(input$sitemap_marker_click, {
    click <- input$sitemap_marker_click
    updateSelectInput(session, "selectedSites", 
                      selected = c(input$selectedSites, click$id))
  })

但是,如果选定的标记值已经存在,我还想在单击它时将其从列表中删除。

© www.soinside.com 2019 - 2024. All rights reserved.