R Exercise 14

1. 利用R的google地图包,描画北京地图,并在图上标注一条从天安门广场到颐和园的路线

#(1)安装R的google地图包

library(googleVis)
library(ggmap)

#(2)获取起点、终点及其中间站点的坐标

from = 'tiananmen, beijing' # 起点设为天安门
to = 'yiheyuan, beijing' # 终点设为颐和园
route.from = geocode(from) # 获取起点坐标
route.to = geocode(to) # 获取终点坐标

route.driving= route(from, to, mode = 'driving', structure = 'route') # 获取乘车路线站点数据(默认)
route.walking= route(from, to, mode = 'walking', structure = 'route') # 获取步行路线站点数据
route.driving2= data.frame(route.driving$lon, route.driving$lat) # 提取乘车路线站点坐标
route.walking2= data.frame(route.walking$lon, route.walking$lat) # 提取步行路线站点坐标

#(3)绘制标注从天安门广场到颐和园的路线的静态北京地图

# pdf("routemap1.pdf",family="GB1")

# 绘制乘车路线图;

map.driving = get_googlemap('beijingligongdaxue', zoom = 12,
                            maptype = 'roadmap',
                            markers = route.driving2, 
                            path = route.driving2, scale = 2)
ggmap(map.driving, extent = 'panel') + 
  annotate("text",x=route.from[1,1],y=route.from[1,2],
           label="天安门",col="red",fontface=2) +
  annotate("text",x=route.to[1,1],y=route.to[1,2],
           label="颐和园",col="red",fontface=2) +
  labs(x="Longitude", y="Latitude", 
       title='天安门到颐和园乘车路线图')

plot of chunk unnamed-chunk-1


# 绘制步行路线图

map.walking = get_googlemap('beijingligongdaxue', zoom = 12,
                            maptype='roadmap',
                            markers = route.walking2, 
                            path = route.walking2, scale = 2)
ggmap(map.walking, extent = 'panel') + 
  annotate("text",x=route.from[1,1],y=route.from[1,2],
           label="天安门",col="red",fontface=2) +
  annotate("text",x=route.to[1,1],y=route.to[1,2],
           label="颐和园",col="red",fontface=2) +
  labs(x="Longitude", y="Latitude", 
       title='天安门到颐和园步行路线图')

plot of chunk unnamed-chunk-1


# dev.off() 

2. 利用WHO数据集,描画亚洲国家的热力地图,标识Adult literacy rate(成人识字率)项指标的直观展现

who = read.csv("D:\\Rworkspace\\WHO.csv", header = TRUE)
who = who[, c(1, 5)]

## 显示地图

gVisGeo = gvisGeoMap(who, locationvar = "Country", numvar = "Adult.literacy.rate....", 
    options = list(height = 500, width = 800, region = "world", dataMode = "regions", 
        showZoomOut = TRUE))
plot(gVisGeo)

在控制台上运行这段代码,在浏览器中会打开一幅效果如下图所示的动态图:当鼠标停留在一个国家上方时,该国的成人识字率数据就会显示出来。

dynamic plot