Удалить функции mapedit программно

С mapedit Можно очистить нарисованные объекты с помощью значка "Корзина", встроенного в пользовательский интерфейс панели. Также возможно очистить объекты, связанные с картой листовки, используя clearMarkers() а также leafletProxy(), как изложено в этом выпуске. Однако leafletProxy не очищает какие-либо функции, нарисованные пользователем. Как программно очистить эти функции? (например, после нажатия кнопки ActionButton).

Вот простое блестящее приложение и более подробное объяснение:

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)

ОБНОВЛЕНИЕ: несколько хакерское решение состоит в том, чтобы снова вызвать модуль в рамках события clear. Есть ли лучшее решение?:

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

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

  observeEvent(input$clear, {
    ### some other things will happen here like uploading dropbox
      edits <- callModule(editMod, "editor", mapview()@map)
  })
}

0 ответов

Другие вопросы по тегам