readOGR cannot open layer 报错

readOGR cannot open layer error

我正在检查 Leaflet tutorial,我偶然发现文件加载错误,内容如下:

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

导致这个的代码:

library(rgdal)
countries <- readOGR("./json/countries.geojson", "OGRGeoJSON")

我已将 countries.geojson 文件保存在 json 目录中,并将工作目录设置为包含 json 目录的目录。

我尝试通过从 Github 下载文件来加载文件:

countries <- readOGR("https://raw.githubusercontent.com/datasets/geoboundaries-world-110m/master/countries.geojson", layer = "OGRGeoJSON")

我收到了这个错误:

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

尝试将图层名称更改为不带扩展名的文件名:

countries <- readOGR("https://raw.githubusercontent.com/datasets/geoboundaries-world-110m/master/countries.geojson", layer = "countries")

出于某种原因,在某些环境中需要调用层 "OGRGeoJSON",在其他环境中需要调用不带扩展名的文件名。

例如,在我的 OSX 上使用最新的 R 和 rgdal 版本,它需要 "OGRGeoJSON",但在我们的生产机器 运行 CentOS 上,它需要文件名。我怀疑这与底层 gdal C 库的不同版本有关。