我在同时使用readOGR和read_sf读取R中的此形状文件时遇到错误:
http://45.56.98.26/madrid-divisiones/Termino_1612.shp
readOGR错误:
Warning in ogrFIDs(dsn = dsn, layer = layer) : no features found
Error in readOGR(dsn = "http://45.56.98.26/madrid-divisiones/Termino_1612.shp") :
no features found
read_sf错误:
Warning in CPL_read_ogr(dsn, layer, query, as.character(options), quiet, :
GDAL Error 1: JSON parsing error: continue (at offset 0)
它在QGIS中很好地打开。我可以使用我的R设置正常(通常使用read_sf)来正常读取其他shapefile,并且以前从未见过此错误。这是我正在使用的代码:
madrid1612 <- read_sf("http://45.56.98.26/madrid-divisiones/Termino_1612.shp",quiet=TRUE,as_tibble = FALSE,stringsAsFactors = TRUE)
madrid1612 <- readOGR(dsn="http://45.56.98.26/madrid-divisiones/Termino_1612.shp")
我已经查看了所有“读取R中的shapefile时出错”的问题,但找不到能解决我问题的任何东西。我尝试在QGIS中将其打开并导出为geojson文件,但出现此错误:
madrid1612<-fromJSON(txt ="http://45.56.98.26/madrid-divisiones/Termino_1612.geojson")
Warning: Error in polygonData.default: Don't know how to get path data from object of class list
将您的代码直接链接到单个.shp
文件后,R {sf}无法确定所需文件(.shx, .dbf, .prj
)的位置。
您可以将这些文件下载到本地磁盘:
library(sf)
library(downloader)
loc = "http://45.56.98.26/madrid-divisiones/"
shape_name = "Termino_1612"
ext_name = c(".shp", ".shx", ".dbf", ".prj")
i=1
for (i in 1:4){
download(paste0(loc, shape_name, ext_name[i]),
destfile= paste0("./", shape_name, ext_name[i]), mode = "wb")
i = i +1
}
madrid1612 <- read_sf("./Termino_1612.shp")
plot(madrid1612)
如果需要直接下载,请选择geojson
。
madrid1612 <- read_sf("http://45.56.98.26/madrid-divisiones/Termino_1612.geojson")
plot(madrid1612)