Блестящее приложение, загрузчик нескольких шейп-файлов

#r #shiny

Вопрос:

Я столкнулся с проблемой с downloadHandler моим блестящим приложением. Приложение отображает два реактивных объекта (полигоны и точки). Я хочу, чтобы в зависимости от выбора, который делают посетители-они могут отображать либо полигоны, либо точки, либо и то, и другое, — когда они нажимают «Загрузить», они получают результат своего выбора.

Проблема: когда я нажимаю на кнопку загрузить, я получаю либо polygons если polygons написано первым в строке shp_files lt;- list.files(temp_shp,c("polygons","points"),full.names = TRUE) , либо points если points написано первым в строке shp_files lt;- list.files(temp_shp,c("points ","polygons"),full.names = TRUE) . Однако я никогда не получаю и то, и другое … именно этого я и хочу. Есть идеи, как это решить?

Спасибо!

 output$download_shp lt;- downloadHandler(   filename = paste0("Shapefiles_",paste0(Country), "_", Sys.Date(),".zip"),  content = function(file) {  # Polygons  polygons = data()  # Points  points = data_point()    # create a temp folder for shp files  temp_shp lt;- tempdir()  # write shp files    writeOGR(polygons, temp_shp, "polygons", "ESRI Shapefile",   overwrite_layer = TRUE)  writeOGR(points, temp_shp, "points", "ESRI Shapefile",   overwrite_layer = TRUE)   # zip all the shp files  zip_file lt;- file.path(temp_shp, "trk_buff_shp.zip")  shp_files lt;- list.files(temp_shp,  c("polygons","points"),  full.names = TRUE)  # zip  zip_command lt;- paste("zip -j",   zip_file,   paste(shp_files, collapse = " "))  system(zip_command)  # copy the zip file to the file argument  file.copy(zip_file, file)  # remove all the files created  file.remove(zip_file, shp_files)    }  )  

Комментарии:

1. Попробуй shp_files lt;- list.files(temp_shp, all.files = TRUE, full.names = TRUE)

2. Привет @YBS, я бы сказал, что это решение работает на 50%. Когда я нажимаю на кнопку загрузить, я получаю шейп-файлы как полигонов, так и точек. Однако, если полигоны не выбраны, папка загрузки будет содержать пустой файл формы полигона. То же самое касается очков…