【发布时间】:2019-05-08 01:40:07
【问题描述】:
此问题是问题How to save a leaflet map in Shiny 和Save leaflet map in Shiny 的后续问题。
我在leaflet.extras 包中的addDrawToolbar 的地图上添加了一个工具栏来绘制形状/点。这让用户可以交互地绘制线条、形状……。最后,我希望能够将带有绘制形状的地图保存为 pdf 或 png。
我利用问题的答案编写了以下代码:How to save a leaflet map in Shiny。但这无助于实现我的目标。
有没有人可以帮助我?
library(shiny)
library(leaflet)
library(leaflet.extras)
library(mapview)
ui <- fluidPage(
leafletOutput("map"),
br(),
downloadButton("download_pdf", "Download .pdf")
)
server <- function(input, output, session) {
foundational_map <- reactive({
leaflet() %>%
addTiles()%>%
addMeasure(
primaryLengthUnit = "kilometers",
secondaryAreaUnit = FALSE
)%>%
addDrawToolbar(
targetGroup='draw',
editOptions = editToolbarOptions(selectedPathOptions =
selectedPathOptions()),
polylineOptions = filterNULL(list(shapeOptions =
drawShapeOptions(lineJoin = "round",
weight = 3))),
circleOptions = filterNULL(list(shapeOptions =
drawShapeOptions(),
repeatMode = F,
showRadius = T,
metric = T,
feet = F,
nautic = F))) %>%
setView(lat = 45, lng = 9, zoom = 3) %>%
addStyleEditor(position = "bottomleft",
openOnLeafletDraw = TRUE)
})
output$map <- renderLeaflet({
foundational_map()
})
user_created_map <- reactive({
foundational_map() %>%
setView(lng = input$map_center$lng, lat = input$map_center$lat,
zoom = input$map_zoom)
})
output$download_pdf <- downloadHandler(
filename = paste0("map_", Sys.time(), ".pdf"),
content = function(file) {
mapshot(user_created_map(), file = file)
}
)
}
shinyApp(ui = ui, server = server)
【问题讨论】:
-
看了SeGa的回答后,我把问题移到
mapview,看看有没有人能帮助我们更好地理解这种情况。
标签: javascript r shiny leaflet