用readOGR阅读geojson

时间:2017-11-27 20:06:37

标签: r shiny ggvis rgdal

我试图通过这个git:https://github.com/hrbrmstr/ggvis-maps

加载一些ggvis映射代码

代码在服务器文件的第27行返回错误:

Warning: Error in ogrInfo: Cannot open data source
Stack trace (innermost first):
41: ogrInfo
40: withCallingHandlers
39: suppressMessages
38: readOGR
37: server [\ggvis-maps-master/server.R#27]
 1: runApp
Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = 
use_iconv,  : 
Cannot open data source

我使用了path.expand以及我发现的其他一些解决方案,到目前为止还没有任何工作。

2 个答案:

答案 0 :(得分:1)

我也有同样的问题。除了,我试图在一个Shiny应用程序中嵌入一个传单chloropleth地图,它在本地工作,但不是我在Shiny中部署它。

我还尝试下载旧版本的rgdal,并在此处找到了归档版本列表:https://cran.r-project.org/src/contrib/Archive/rgdal/

当我输入version = "1.2-15"时下载工作,但它需要我下载Rtools(Rtools34)来安装该版本。

在Rtools和rgdal(1.2-15)完成安装后,我再次发布了Shiny应用程序,但它仍然无效。

这是我的代码:

counties <- readOGR(dsn = "./gz_2010_us_050_00_20m.json", layer= "gz_2010_us_050_00_20m")

更新: 在降级到1.2-15并将我的代码更改为layer = "OGRGeoJSON"后,该应用已成功部署!

答案 1 :(得分:0)

如果您最近安装了readOGR函数正在调用的程序GDAL,则会出现此错误。 GDAL 2.2.0 introduced an API change to how it reads GeoJSON files。您可以通过在终端中运行gdalinfo --version来检查您的GDAL版本。

如果是这种情况,您可以从

调整代码的这一部分
maine <- readOGR(dsn="/data/maine.geojson", layer="OGRGeoJSON")

maine <- readOGR(dsn="/data/maine.geojson", layer="maine")

然后我怀疑它会起作用。