2

我想要一张地图,可以在其中拖动和删除标记,但不添加新标记。这应该很容易做到,但我不知道如何使用传单 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)
4

1 回答 1

2

您可以添加 CSS 样式来隐藏按钮。如下更改您的流体页面应该可以解决问题:

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")
)

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

于 2017-04-03T16:15:21.083 回答