在Shiny R中,我正在制作带有叠加层的地图应用,然后添加来自用户的输入叠加。因此,当用户上传他的数据并看到带有标记的更新地图后,我希望用户能够将新地图下载为html文件。
我将简要演示下面我正在做的事情:
server.ui
library(shiny)
library(leaflet)
shinyServer(function(input,output,session){
output$mymap <- renderLeaflet({
mydata <- read.csv("data/stuff.csv")
leaflet() %>% addTiles() %>%
addCircles(data = mydata)
})
observeEvent(input$file1, {
inUserfile <- input$file1
if(!is.null(inUserfile)) {
userdata <- read.csv(inUserfile$datapath)
proxy <- leafletProxy("mymap")
proxy %>% addMarkers(data = userdata)
}
})
output$htmllink <- downloadHandler (
filename = 'temp.html',
content = function(file) {
src <- normalizePath('mymap.Rmd')
owd <- setwd(tempdir())
on.exit(setwd(owd))
file.copy(src, 'mymap.Rmd')
out <- render('mymap.Rmd', html_document())
file.rename(out,file)
})
我似乎无法让下载按钮工作。我不确定放入.Rmd文件的内容,特别是因为我还使用了用户上传的文件。
在使用leafletProxy后保存地图时,文档非常模糊,我正在尝试改编的是来自其他人试图在Shiny R中保存其传单输出的问题。
感谢任何帮助。