R语言:leafletCN的应用

来源:互联网 发布:淘宝怎么看退换货记录 编辑:程序博客网 时间:2024/05/18 00:59

leafletCN
1、安装

## 稳定版install.packages("leafletCN")## 开发版devtools::install_github("lchiffon/leafletCN")

主函数介绍:
regionNames:找地名函数,极其方便
demomap:有地名就给你输出一个交互、动态的区域图,真方便
geojsonMap:作用是分区块标色

2、主函数介绍
(1)regionNames函数(regionNames的粒度是省级、县级)

regionNames("北京") [1] "密云县"   "怀柔区"   "房山区"   "延庆县"   "门头沟区" "昌平区"   "大兴区"   [8] "顺义区"   "平谷区"   "通州区"   "朝阳区"   "海淀区"   "丰台区"   "石景山区"[15] "西城区"   "东城区"   "宣武区"   "崇文区"

(2)主函数——demomap:区域式地图

library(rgeos)demomap("china")demomap("北京")

这里写图片描述
这里写图片描述

(3)主函数——geojsonmap:地图标色函数

pal <- substr(rainbow(34),1,7)  #颜色,彩虹色dat = data.frame(name = regionNames("china"),                 value = 1:34)geojsonMap(dat,"china",pal=pal,fillOpacity = 0.2)

这里写图片描述

pal <- substr(rainbow(18),1,7)dat = data.frame(name = regionNames("北京"),                 value = 1:18)geojsonMap(dat,"北京",pal=pal,fillOpacity = 0.2)

这里写图片描述

3、辅助函数
1)辅助函数——amap:高德地图底图

leaflet() %>%   amap()

(2)辅助函数——read.geoShape:genjson格式转化

  if(require(sp)){  filePath = system.file("geojson/china.json",package = "leafletCN")  map = read.geoShape(filePath)  plot(map)}

读入了china.json格式的内容。
(3)辅助函数——leafletGeo:地图+小显示框
(1)单点标注:地图+标点

leaflet() %>%  amap() %>%    addMarkers(lng=116.41, lat=39.88 ,popup="天坛")# 经度:lng# 维度:lat#popup:点的名称

这里写图片描述

(2)多点标注:地图+标点+带icoon

#iconList 生成小框框iconList = awesomeIconList(  "home" = makeAwesomeIcon(icon = "home",markerColor = "skyblue"),  "weixin" = makeAwesomeIcon(icon = "cutlery",markerColor = "red"),  "bank" = makeAwesomeIcon(icon = "plus-sign",markerColor = "orange"),  "automobile" = makeAwesomeIcon(icon = "trash",markerColor = "purple"),  "coffee" = makeAwesomeIcon(icon = "book"))#每个小框框的坐标,经纬度geo = data.frame(lon = rep(121.44, 5),                 lat = rep(31.22, 5),                 city = rep("Shanghai", 5))#坐标进行微调,使得有差异geo$lon = geo$lon+rnorm(5,0,0.003)geo$lat = geo$lat+rnorm(5,0,0.003)#小框框的属性geo$type = c("home",             "weixin",             "bank" ,             "automobile",              "coffee" )#在高德地图上进行绘制leaflet(geo) %>% amap() %>%  addMiniMap() %>%   addAwesomeMarkers(icon = ~iconList[type])

这里写图片描述
图像icon下载网站:
(http://ionicons.com/)
(http://fontawesome.io/icons/)

(3)地图+分区域显示+色彩

if(require(leaflet)){  region=regionNames("安徽")  dat = data.frame(region,runif(length(region)))  map = leafletGeo("安徽", dat)  #涂色环节  pal <- colorNumeric(    palette = "Blues",    domain = map$value)  #载入高德地图amap  leaflet(map) %>% amap() %>%  #加入框边界及颜色    addPolygons(stroke = TRUE,                smoothFactor = 1,                fillOpacity = 0.7,                weight = 1,                color = ~pal(value),                popup = ~htmltools::htmlEscape(popup)    ) %>%    #加入右下角边框    addLegend("bottomright", pal = pal, values = ~value,              title = "legendTitle",              labFormat = leaflet::labelFormat(prefix = ""),              opacity = 1)

map 阶段,是导入数据,当然这里你也可以导入省级、县级。
addPolygons为加入边界;addLegend加入右下角的程度显示框。
这里写图片描述

最后
除此之外,还有更牛的leaflet包,其学习可参照下列网址,本文不做详述。
leaflet官网:http://leafletjs.com/index.html
详细R文档:http://rstudio.github.io/leaflet/markers.html
github地址:https://github.com/Leaflet/Leaflet.markercluster

本文仅限作者平时笔记使用,且对原作者原文稍有修改,涉及版权问题请原作者见谅。