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")
)
如果您有任何问题,请告诉我。
我想要一张地图,可以拖拽和删除标记,但不能添加新的标记。这应该很容易做到,但我不知道如何使用传单 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")
)
如果您有任何问题,请告诉我。