以编程方式删除mapedit要素

时间:2018-09-25 17:34:53

标签: r shiny sf r-leaflet

使用render() { const options = [ { label: "Group 1", options: [ { label: "Group 1, option 1", value: "value_1" }, { label: "Group 1, option 2", value: "value_2" } ] }, { label: "A root option", value: "value_3" }, { label: "Another root option", value: "value_4" } ]; return <Select options={options} /> } ,可以使用内置在绘制工具栏UI中的“废纸'”图标清除绘制的特征。如this issue所述,也可以使用mapeditclearMarkers()清除与传单地图相关的特征。但是,leafletProxy不会清除用户绘制的任何功能。如何以编程方式清除这些功能? (例如,在单击actionButton之后)。

这是一个简单的闪亮应用程序,并有更多说明:

leafletProxy()

更新:有点棘手的解决方案是在clear事件内再次调用该模块。有更好的解决方案吗?:

library(mapedit)
library(mapview)
library(shiny)

ui <- fluidPage(
  fluidRow(
    editModUI("editor"),
    actionButton('clear', "Clear features")
  )
)
server <- function(input, output, session) {

  edits <- callModule(editMod, "editor", mapview()@map)

  observeEvent(input$clear, {
    ### some other things will happen here like uploading dropbox
    # then I need to clear the output of edits()
    print(edits())

    ##cannot do this
    # edits()$drawn <- NULL
  })
}
shinyApp(ui, server)

0 个答案:

没有答案