在R

时间:2018-10-10 13:55:01

标签: r dictionary gis

我对R中的GIS映射是陌生的。我试图绘制越南地图,并用犯罪编号或其他内容“填充”。我的代码如下

st <- c('HCMC', 'Hanoi','Danang', 'Thanh Hoa', 'An Giang')
lat <- c(10.78, 21.02, 16.06, 19.82, 10.38)
long <- c(106.69, 105.83, 108.24, 105.79, 105.42)
ba <- c(96,99,88,56,7)
bls <- c(0.85, 1.63, 1.09, 0.61, 0.20)
vn <- data.frame(st,lat, long, ba, bls)

st-状态名称,lat-纬度,long-经度,babls-其他属性。 现在,我使用下面的代码将数据帧转换为shapefile以进行进一步处理

WGScoor <-  vn
coordinates(WGScoor) = ~long+lat
proj4string(WGScoor)<- CRS("+proj=longlat +datum=WGS84")
LLcoor <- spTransform(WGScoor,CRS("+proj=longlat"))
raster::shapefile(LLcoor, "MyShapefile.shp")

然后我使用readOGR再次读取shapefile

library(rgdal)
viet <- readOGR("MyShapefile.dbf")

然后我使用以下代码进行绘制

qtm(viet, fill="ba", fill.style="quantile", 
    fill.n=4,
    fill.palette="Greens",
    legend.text.size = 0.5,
    layout.legend.position = c("right", "bottom"))

我得到一个输出。但这仅是包装盒中的5分。我没有在越南的地图上看到它。

1 个答案:

答案 0 :(得分:0)

读取shapefile时,应引用以.shp结尾的文件。这就是readOGR()没有产生正确对象的原因。

似乎您可以使用与编写shapefile相同的功能来读取shapefile:

viet <- raster::shapefile("MyShapefile.shp")

应该可以。