从Dropbox帐户中将gpx文件读入Shiny

时间:2017-01-13 01:52:48

标签: r shiny dropbox gpx

我有一个Shiny应用程序可以访问Dropbox帐户中的数据。我使用https://github.com/karthik/rdrop2/blob/master/README.md处的指令可以在没有问题的情况下读取csv数据,即在执行身份验证步骤后使用rdrop2包中的drop_read_csv命令。 e.g。

my_data<-drop_read_csv("ProjectFolder/DataSI.csv")  

我的下一个问题是,将有很多gpx跟踪文件上传到我希望应用能够读入的Dropbox。我尝试过使用:

gpx.files<-drop_search('gpx', path="ProjectFolder/gpx_files")
trk.tmp<-vector("list",dim(gpx.files)[1])
for(i in 1: dim(gpx.files)[1]){
  trk.tmp[[i]]<-readOGR(gpx.files$path[i], layer="tracks") 
}

但没有运气。在readOGR步骤,我得到:

Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,  : 
  Cannot open data source 

希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

我的问题是我没有正确指定Dropbox路径。我使用了drop_read_csv代码并制作了drop_readOGR版本:

drop_readOGR<-function(my.file, dest=tempdir()){
  localfile = paste0(dest, "/", basename(my.file))
  drop_get(my.file, local_file = localfile, overwrite = TRUE)
  readOGR(localfile, layer="tracks")
}

所以现在我可以使用之前正在做的事情,除了我已经改变循环中的行以调用新函数。

gpx.files<-drop_search('gpx', path="ProjectFolder/gpx_files")
trk.tmp<-vector("list",dim(gpx.files)[1])
for(i in 1: dim(gpx.files)[1]){
  trk.tmp[[i]]<-drop_readOGR(gpx.files$path[i]) 
}