删除 R Shiny 中的特定传单标记。

标签 r shiny leaflet marker

我有一层 CircleMarkers,我试图只删除具有特定 layerId 的标记。这些圆形标记的 id 位于数据框中。

下面是一个简单的例子:
假设我有一个包含 3 行 id 为 1、2 和 3 的数据框。我尝试创建一个复选框输入,其中包含删除 id 1、2 或 3 的选项。

在输入下方将触发一个使用 removeMarker 函数的 ObserveEvent。然而,什么也没有发生。我已经尝试了一百万种方法将 id 输入到 removeMarker 中,我还尝试了其他几种删除方法。要么什么都没有发生,要么全部消失。我需要一种删除特定标记的方法。

 ui <- shinyUI(fluidPage(
sidebarLayout(
    sidebarPanel(
        checkboxInput("delete1", "Delete ID=1 and 2",value=FALSE),
    checkboxInput("delete3", "Delete ID=3",value=FALSE)
    ),
    mainPanel(
        leafletOutput("map")
    )
)
))

df <- data.frame(id=c(1,2,3),lng = rnorm(3, -106.1039361, 0.5) ,
              lat = rnorm(3, 50.543981, 0.5))

server <- shinyServer(function(input, output, session) {

output$map <- renderLeaflet(
    leaflet() %>% 
addTiles() %>% addCircleMarkers(layerId=df$id,df$lng,df$lat, group='marker', radius=2, fill = TRUE,color='red') 


    )

observeEvent(input$delete1, {
    proxy <- leafletProxy('map')
    if (input$delete1){ proxy %>% removeMarker(df[1:2,1])
 }
 })

observeEvent(input$delete3, {
    proxy <- leafletProxy('map')
    if (input$delete3){ proxy %>% removeMarker(3)}
   })
})

 shinyApp(ui, server)

最佳答案

出于某种原因,这在 layerId 时有效在 addCirleMarkers并在 removeMarker是字符,您可以尝试,对于服务器部分:

server <- shinyServer(function(input, output, session) {

  output$map <- renderLeaflet(
    leaflet() %>% 
      addTiles() %>% addCircleMarkers(layerId=as.character(df$id),df$lng,df$lat, group='marker', radius=2, fill = TRUE,color='red') 


  )

  observeEvent(input$delete1, {
    proxy <- leafletProxy('map')
    if (input$delete1){ proxy %>% removeMarker(c("1","2"))
    }
  })

  observeEvent(input$delete3, {
    proxy <- leafletProxy('map')
    if (input$delete3){ proxy %>% removeMarker("3")}
  })

})

关于删除 R Shiny 中的特定传单标记。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43596208/

相关文章:

r - BUG : Shiny tableOutput gives error on 0-row data. 框架

javascript - 自定义小部件中的 react 性

javascript - Shiny 应用程序内的 Google 街景容器

onclick - Leaflet:将点击事件添加到群集图标

r - R 中的 Shiny 应用程序中的 sliderInput

r - 具有聚类标准误差的对数二项式回归

javascript - 保存和检索基于 leaflet.js 的非地理 map

javascript - 具有动态作用域编译的动态模板

rmarkdown 设置 kable 的位置

r - 从一个函数和两个数字数据框创建一个矩阵