我发现了两种在 R 中打开 shapefile 的基本方法——使用rgdal
和maptools
:
# 1
require(maptools)
shape_maptools <- readShapeLines("file.shp")
# 2
require(rgdal)
shape_rgdal <- readOGR(".", "file")
两种情况下的数据结构似乎完全相同(SpatialLinesDataFrame 类,sp 包)。但是,虽然rgdal
正确读取投影,maptools
但没有(您可能必须手动分配 CRS):
> proj4string(shape_maptools)
[1] NA
> proj4string(shape_rgdal)
[1] "+proj=utm +zone=31 +ellps=intl +units=m +no_defs"
那么,我为什么要使用maptools
打开形状文件呢?我可能只会犯手动分配 CRS 的错误!