绘制某一省份的地图,查找某一省份的ADCODE99代码

setwd("E:/中国GIS地图/国家基础地理数据")
library("maptools")
china_map=readShapePoly("bou2_4m/bou2_4p.shp")

plot(china_map)

plot(china_map,col=gray(924:0/924))

此时,china_map中保存的是各个省 / 直辖市的多边形面图,数据类型是SpatialPolygonsDataFrame

这个SpatialPolygonsDataFrame类型并不是真正的data.frame类型,而是一个 sp 包定义的类,只不过重载了 []和 $ 运算符,使得一些行为上与data.frame相类似。

length(china_map)

names(china_map)


可以发现mydat中有 925 条记录,每条记录中含有面积(AREA)、周长(PERIMETER)、各种编号、中文名(NAME)等字段。其中中文名(NAME)字段是以 GBK 编码的

table(iconv(mydat$NAME, from = "GBK"))


我的环境是 UTF-8,所以需要iconv函数转化一下才能正常显示。

结果显示多数省的地图都是由一个多边形构成,少数临海省 / 直辖市由于有很多附属岛屿,多边形数目比较多。

利用与data.frame相似的 [] 和 $ 运算符操作,我们可以迅速提取出一个省市的数据,比如上海及附属崇明岛:

Shanghai = china_map[china_map$ADCODE99 == 310000,]

plot(Shanghai)

#其中 ADCODE99 是国家基础地理信息中心定义的区域代码,共有 6 位数字,由省、地市、县各两位代码组成。


在长沙地图上描出个下去流行病的个数多少(颜色代表流行病个数)

首先把长沙所辖地区找到,这个可以根据 ADCODE99 编码的前 4 位定位长沙,去查表就可以了。但是这个地名是 99 年的标准,新版正在制定过程中,随时会变。我们权且以此为例。如果找不到表,可以通过代码在命令行下手工查找:

setwd("E:/中国GIS地图/国家基础地理数据")

library("maptools")

mydat = readShapePoly("bou4_4m//BOUNT_poly.shp")
tmp = iconv(mydat$NAME99, from = "GBK")
grep("长沙", tmp, value = TRUE)
grep("长沙", tmp)

mydat$ADCODE99[grep("长沙", tmp)]


这样我们就知道了长沙 ADCODE99 编码的前 4 位是 4301,其中 43 代表湖南省,01 就是长沙市。

Shanghai = china_map[china_map$ADCODE99 == 310000,]

plot(Shanghai)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值