本文介绍了为什么Webshot无法与R Shiny中的传单一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这种情况下,第一个网络快照无法正常使用webshot("google.com") 对于webshot("www.google.com"),我得到了:
First off webshot isn't working in this context webshot("google.com") for webshot("www.google.com") I get :
env: node\r: No such file or directory
Error in webshot("google.com") : webshot.js returned failure value: 127
所以这不适用于传单代码
so This isn't working for the leaftlet code
staters <<-
readOGR(dsn="cb_2015_us_county_20m",layer="cb_2015_us_county_20m")
getMap<-function()({
leaflet(staters) %>%
addPolygons( stroke = T, fillOpacity =.7, smoothFactor = 0, color = "black",
weight = .5, fill = T, fillColor = "red"
)
output$downloadMap <- downloadHandler(
filename = function() { paste(input$chooseStates, '.png', sep='') },
content = function(file) {
# temporarily switch to the temp dir, in case you do not have write
# permission to the current working directory
owd <- setwd(tempdir())
on.exit(setwd(owd))
saveWidget(getMap(), "temp.html", selfcontained = FALSE)
webshot("temp.html", file = "filename.png", cliprect = "viewport")
}
)
在rshiny上运行时出现404错误
I get a 404 error when I run this on rshiny
推荐答案
正在运行.我认为您错过了将file
参数传递给downloadHandler
中的webshot
.
It is working. I think you missed passing the file
argument to webshot
in the downloadHandler
.
我将传单地图保存在reactive
中,然后可以在renderLeaflet
和downloadHandler
中调用它.
I saved the leaflet-map in a reactive
and then you can call it in the renderLeaflet
and in the downloadHandler
.
以下示例应该起作用:
## install 'webshot' package
library(devtools)
# install_github("wch/webshot")
## load packages
# install_phantomjs(version = "2.1.1",
# baseURL = "https://github.com/wch/webshot/releases/download/v0.3.1/")
library(leaflet)
library(htmlwidgets)
library(webshot)
library(shiny)
ui <- fluidPage(
leafletOutput("map"),
downloadLink("downloadMap", "Download")
)
server <- function(input,output) {
mapReact <- reactive({
leaflet() %>%
addTiles('http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png') %>%
addCircles(12.5,42,radius=500) %>% addMarkers(12,42,popup="Rome")
})
output$map <- renderLeaflet({
mapReact()
})
output$downloadMap <- downloadHandler(
filename = paste("LeafletMap", '.png', sep=''),
content = function(file) {
owd <- setwd(tempdir())
on.exit(setwd(owd))
saveWidget(mapReact(), "temp.html", selfcontained = FALSE)
webshot("temp.html", file = file, cliprect = "viewport")
})
}
shinyApp(ui, server)
这篇关于为什么Webshot无法与R Shiny中的传单一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!