[未知用户] 哈哈。太感谢了。终于成功了。我用的是2.10.1
这个是怎么回事?

> getID=function(mapdata,provname)
+ {
+ index=mapdata$att.data$NAME %in% provname;
+ ids=rownames(mapdata$att.data[index,]);
+ return(as.numeric(ids));
+ }
> midchina=c("河南省","山西省","湖北省","安徽省","湖南省","江西省");
> plot(x,recs=getID(x,midchina),col="green",ol="white",xlab="",
+ ylab="");
警告多于50个(用warnings()来显示第一个到第五十个)
>
[未知用户] 新版本的maptools包改动很大,我已经把文章更新了一下,参见文中的红色部分。
[未知用户] 什么意思?getColor()不是写在前面吗?只是需要把里面的mapdata$att.data$NAME改成mapdata@data$NAME
22 天 后
有两个问题期待大家帮助:
1、原文“首先,从这里下载中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间,然后安装maptools包,运行如下程序:”
请问“工作空间”指的是什么?如何设置?

2、这个地图能精细到地级市级别吗?是不是在“mapdata"包里可以看到都有什么样的数据?可我找不到包的路径。
[未知用户] 1、用R软件时可能经常要读取一些外部文件,引用这些文件有两种方式,一种是绝对路径,比如“C:/AAA.txt”,另一种就是把工作空间设在C:/,然后只要用相对路径“AAA.txt”就行了。说白了就是少写了一大串路径名。R中的函数是setwd()
2、地图的精确度与数据有关,mapdata里自带了一些,如果要更精确的,可以到网上去搜GIS数据。要读取mapdata里的数据可以这样做:
cnmapdata=map("china"),然后cnmapdata$xcnmapdata$y就分别是经度和维度了。
[未知用户] 谢谢,弄明白了。
那个工作空间,原来R for beginners里就有提到。
2 个月 后
Very good, very strong!

跟着老师给的链接找过来的,非常有帮助,谢谢楼主

ps:“如果有机会的话,这一主题的下一篇文章将为大家介绍地图数据的组成结构,并说明如何将不同格式的地理数据整合起来,例如如何在上面的地图上绘制出我国的铁路、水系分布等内容。” 这部分有帖子说明吗?
11 天 后
你好,你讲的这个方法很有用,但是能否绘一个省的带地市边界的图呢?
比如用R绘广东省带地市边界的图?
[未知用户] 你需要下载地市边界数据,我不知道国家基础地理信息中心是否提供这种细类数据下载,你自己可以去查看一下。画图的方法都是一样的,读入shp数据,然后plot()。
你好,我在国家基础地理信息中心上没找到这种数据,哪里有呢?
[未知用户] 这个可以吗?
http://sms.webmap.cn/xq.asp?dbid=67
这个数据估计没有用,你绘了一个中国带省界图很漂亮,能否也绘一个省图带市县界的图呢
哦,你好!怎么把省的名称自动写到地图里呢?
4 个月 后
我想问问怎么确定广东省各市的边界,太需要了,谢谢