Speichern von Prospektkarten in R shiny
Ich habe eine App erstellt, in der der Benutzer eine Flugblattkarte ändern kann, und ich möchte diese Karte in einem PDF-Bericht verwenden. Ich habe 1. Packungsbeilage, Webshot und htmlwidget installiert 2. PhantomJS @ installie
below ist eine vereinfachte Version des Codes
server.R:
library(shiny)
library(leaflet)
library(htmlwidgets)
library(webshot)
shinyServer(function(input, output, session) {
output$amap <- renderLeaflet({
leaflet() %>%
addProviderTiles("Stamen.Toner",
options = providerTileOptions(noWrap = TRUE, reuseTiles=TRUE))
})
observe({
leafletProxy("amap") %>%
clearShapes() %>%
addCircles(lng = c(22,-2), lat = c(42,65))
})
observeEvent(input$saveButton,{
themap<- leafletProxy("amap")
saveWidget(themap, file="temp.html", selfcontained = F)
webshot("temp.html", file = "Rplot.png",
cliprect = "viewport")
})
})
ui.R:
fluidPage(
leafletOutput("amap", height="600px", width="600px"),
br(),
actionButton("saveButton", "Save")
)
Ich erhalte folgende Fehlermeldung:
Warning: Fehler in system.file: 'package' muss die Länge 1 haben. Stack trace (innerste zuerst): 73: system.file 72: readLines 71: paste 70: yaml.load 69: yaml :: yaml.load_file 68: getDependency 67: widget_dependencies 66: htmltools :: attachDependencies 65: toHTML 64: saveWidget 63: observEventHandler [C: \ R files \ test / server.R # 24] 1: shiny :: runApp
wenn die Schaltfläche Speichern aktiviert ist. savewidget funktioniert einwandfrei, wenn ich die Schaltfläche zum Speichern wie folgt definiere:
observeEvent(input$saveButton,{
themap<-leaflet() %>%
addProviderTiles("Stamen.Toner",
options = providerTileOptions(noWrap = TRUE, reuseTiles=TRUE))
saveWidget(themap, file="temp.html", selfcontained = F)
webshot("temp.html", file = "Rplot.png",
cliprect = "viewport")
})
Aber ich möchte wirklich die Änderungen, die der Benutzer im webshot vornimmt. Kann jemand helfen