R Shiny中带有leafletProxy的Leaflet drawToolbar

时间:2018-10-03 08:39:36

标签: r shiny r-leaflet

我喜欢在切换按钮时添加和删除绘图工具栏。但这行不通。也许是与https://github.com/bhaskarvk/leaflet.extras/issues/148相关的错误,或者我的代码有问题吗?

library(shiny)
library(shinyBS)
library(leaflet)
library(leaflet.extras)

ui <- fluidPage(
  bsButton("edit", " Edit", icon = icon("pencil"),
           style = "default", type = "toggle", value = FALSE),
  leafletOutput("map")
)

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

  output$map <- renderLeaflet({leaflet() %>% addTiles()})

  observe({
    req(isFALSE(input$edit))
    print(input$edit)
    leafletProxy("map") %>% removeDrawToolbar()
  })

  observe({
    req(isTRUE(input$edit))
    print(input$edit)
    leafletProxy("map") %>% addDrawToolbar()
  })
}

shinyApp(ui, server)

1 个答案:

答案 0 :(得分:0)

看起来像leafletProxy的未解决问题。如您的链接中所建议,您可以通过在lfx-draw-bindings.js中仅用“ remove”替换两个“ removeFrom”方法来解决此问题。在Windows上,您可以在这里找到

C:\Program Files\R\R-3.4.3\library\leaflet.extras\htmlwidgets\build\lfx-draw

不过,该解决方案仅在本地有效,如果您将应用程序发布在Shinyapps.io上,则不会执行。