R语言与地图(三)

浏览: 1514

Hello,

       大家好!欢迎收听 每周五分钟 与您分享 一点儿数据分析 的那些事。

作为背包客来讲,青年旅舍当然是大部分学生群体的首选了。而且国际青年旅舍也逐步火热。本周,我们将讲解如何利用 baidumap 包 和 leaflet 包以交互的形式展现上海市青年旅舍的信息。

1. 获取上海市青旅的信息:

library(baidumap)    # 加载 baidumap 包

ql<-getPlace(place='青年旅舍', city='上海')

head(ql)

dim(ql)     # 共搜索出172家青旅

x<-ql$lon; y<-ql$lat    # 获取青旅的横纵坐标

2. 绘制交互的地图:

library(maptools)    # 加载 maptools 包

shape<-readShapePoly('~/县级行政界线/BOUNT_poly.shp')

center<-getCoordinate('上海', formatted=T)


       a<-as.numeric(center[1])

         b<-as.numeric(center[2])

popup <- paste0("<strong><font color='red'> Name: </font>  </strong>", ql$name, "<br>", "<strong><font color='red'>Telphone: </font></strong>", ql$telephone)

library(leaflet)     # 加载 leaflet 包

leaflet(shape) %>% addTiles() %>% setView(a,b,zoom = 9) %>% addMarkers(lng=~x,lat=~y,popup=~popup)


3. 编写函数,拓展查找内容:

ql_finder<- function(city='上海', place='青年旅舍', zoom = 9){

       lapply(c('baidumap','maptools','leaflet'), function(x) library(x,character.only = TRUE))

              shape<-readShapePoly('~/县级行政界线/BOUNT_poly.shp')

              ql<-getPlace(place = place, city = city)

              lon<-ql$lon; lat<-ql$lat

              center<-getCoordinate(city,formatted=T)

              a<-as.numeric(center[1])

              b<-as.numeric(center[2])

              popup <- paste0("<strong><font color='red'> Name: </font>  </strong>", ql$name, "<br>", "<strong><font color='red'>Telphone: </font></strong>", ql$telephone)

              leaflet(shape) %>% addTiles() %>% setView(a,b,zoom = zoom) %>% 

addMarkers(lng=~lon,lat=~lat,popup=~popup)

        }

        ql_finder(city='上海', place='小杨生煎', zoom = 10)


4. 县级边界数据:

链接: https://pan.baidu.com/s/1kU7uIsn 密码: cjq9

Okay, that‘s all. 感谢您的收听,咱们下期再见,再见,再见~


如有兴趣,可以关注一下微信公众号:

推荐 1
本文由 ecnu刘洋 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

maptools 应该是更新了函数吧? readShapePoly ---> SpatialPolygons ,但读不出来
晕,自己目录搞错了, ./ & ~/
有个bug就是 leaf地图和百度地图坐标不匹配,需要调校
可参考http://blog.csdn.net/u012087400/article/details/53744756

要回复文章请先登录注册