Удалить функции 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)
})
}