Leaflet DrawToolbar:仅允许编辑和删除但不允许在 R Shiny 中添加新标记

Leaflet DrawToolbar: allow only editing and deleting but not adding new markers in R Shiny

我想要一张地图,可以拖拽和删除标记,但不能添加新的标记。这应该很容易做到,但我不知道如何使用传单 DrawToolbar 来做到这一点。似乎没有禁用绘图的选项。

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

data <- data.frame(lat = c(48, 47.5), lng = c(11, 11), marker_id = c(1, 2))

ui <- fluidPage(
  leafletOutput("map")
)

server <- function(input, output) {
  values <- reactiveValues(data = data)

  output$map <- renderLeaflet({
    leaflet() %>% addTiles() %>% setView(11, 48, 8) %>% 
      addDrawToolbar(
        targetGroup = "markers",
        polylineOptions = FALSE,
        polygonOptions = FALSE,
        rectangleOptions = FALSE,
        circleOptions = FALSE,
        editOptions = editToolbarOptions())
  }) 

  observe({
    leafletProxy("map") %>% clearMarkers() %>%
      addMarkers(data = values$data,
        options = list(draggable = TRUE), group = "markers")
  })
}

shinyApp(ui, server)

您可以添加 css 样式来隐藏按钮。如下更改您的 fluidPage 应该可以解决问题:

ui <- fluidPage(
  tags$head(
    tags$style(HTML("
      a.leaflet-draw-draw-marker {
      display: inline;
      visibility: hidden;
      }
     div.leaflet-draw-toolbar{
       box-shadow: 0 0px 0px rgba(0,0,0,0) !important; 
      -moz-box-shadow:0 0px 0px rgba(0,0,0,0) !important;
      -webkit-box-shadow: 0 0px 0px rgba(0,0,0,0) !important;
      border-color: rgba(0,0,0,0) !important;
      }

    "))
  ),
  leafletOutput("map")
)

如果您有任何问题,请告诉我。