这一篇是leaflet动态地图的第四篇,也是最值得推荐的一篇,这一篇涉及到热力地图填充,通过该篇内容,大家可以体会大leaflet在线地图的R借口在处理热力地图上面颜色标度映射的强大优势。

加载包:

library(plyr)

library(maps)

library(mapdata)

library(leaflet)

library(stringi)

library(maptools)

library(htmltools)

library(RColorBrewer)

library(ggplot2)

library(rgdal)

地图素材加载:(leaflet支持多种地图素材,比如常见的shapefile格式、json格式以及其他在线地图,但是因为json格式本来还没有很熟练,这里用shp格式地图素材为例进行加讲解)。

肯定会有小伙伴儿会问,既然leaflet本身就是在线地图,为啥还要费事儿加载shp地图素材就进行映射,因为leaflet在线地图提供的地图底图本身具有多级缩放特性,每一缩放级别都有对应的行政区划界线,但是这些参数和行政区划是封装在底层的js语言中的,我们无法使用R语言直接进行调用,只能作为一个图层素材进行背景修饰,说白了,其实我们想要的仅仅是多级缩放的动态切换效果,这样再结合我们自定义的地图素材,可以呈现出更加完美的效果。(只有热力填充地图需要定义区域界线,而点图和线图都可以直接利用leaflet本身的地图素材,因为只需要坐标点位置即可)。

我们常用的地图素材资源无非以下三种,R包内置的地图数据、shapefile格式和json格式。以下是三种格式素材导入并在leaflet中制作的地图的基本代码:

maps包:

mapStates

leaflet(mapStates) %>% addTiles() %>%addPolygons(fillColor=topo.colors(10,alpha =NULL), stroke = FALSE)

mapWorld

leaflet(mapWorld) %>% addTiles() %>%addPolygons(fillColor = topo.colors(10, alpha = NULL), stroke = FALSE)

shapefile:

American_map

American_map$STATE_NAME = iconv(American_map$STATE_NAME,"UTF8","CP936")

leaflet(American_map)%>%addTiles()%>%addPolygons(popup=~STATE_NAME,fillColor=topo.colors(10,alpha=NULL),stroke=FALSE)

json文件:

library(jsonlite)

geoData%paste(collapse="\n")%>%fromJSON(simplifyVector=FALSE)

geoData$style=list(weight=1,color="red",fillColor="green",opacity=1,fill=TRUE,fillOpacity=0.6)

leaflet()%>%setView(lng=-98.961387,lat=39.708533,zoom=3)%>%addTiles()%>%addGeoJSON(geoData)

前两种素材作图过程大同小异,特别是一些标度的属性声明很类似ggplot中的函数过程,但是json格式的素材操作起来就不是很友好,他的标度属性是要在数据文件中新建style的list对象进行生命,而且json格式中的list非常多,结构相对复杂,至今我也没完全搞明白如果自由操作。

下面是承接上面shapefile格式素材做展现的四中颜色标度(三种连续性标度和一种分类标度的映射过程)。

#colorQuantile(连续性数值变量的百分比颜色过度):

pal

leaflet(American_map)%>%addTiles()%>%

addPolygons(color=~pal(American_map@data$POP1990),fillOpacity = 0.8,weight=1)%>%

addLegend(pal=pal,values=American_map@data$POP1990,position="bottomleft",title = "1990年人口数量(万人)")

以下两种同属连续性数值变量(使用颜色数量不同)

colorNumeric(多色过度):

pal

leaflet(American_map)%>%addTiles() %>%

addPolygons(color=~pal(American_map@data$POP1990),fillOpacity = 0.8,weight=1)%>%

addLegend(pal=pal,values=American_map@data$POP1990,position="bottomleft",title = "1990年人口数量(万人")

colorNumeric(单色过度):

pal

leaflet(American_map)%>%addTiles()%>%

addPolygons(color=~pal(American_map@data$POP1990),fillOpacity = 0.8,weight=1)%>%

addLegend(pal=pal,values=American_map@data$POP1990,position="bottomleft",title="1990年人口数量(万人)")

colorBin(多色色渐变分组过度):

pal

leaflet(American_map) %>% addTiles() %>%

addPolygons(color=~pal(American_map@data$POP1990),fillOpacity=0.8,weight=1)%>%

addLegend(pal=pal,values=American_map@data$POP1990,position="bottomleft",title="1990年人口数量(万人)")

离散标度:(这个例子是用在变量本身就是因子变量的情况下,算是分类变量情况下的颜色标度映射)

china_map

mydata

mydata$type

shape

pal

i_popupProvince:",shape$NAME,"
",

"Level:",shape$type)

#设置弹出窗口

leaflet(shape)%>%addTiles()%>%

setView(116.387021,39.969369,zoom=3)%>%

addPolygons(fillColor=~pal(shape$type),fillOpacity=0.8,color="#000000",weight=1,popup=i_popup)%>%

addLegend(pal=pal,values=shape@data$type,position="bottomright",title=paste0("小魔方基团2016年","
","营业分布等级"))

联系方式:

wechat:ljty1991

Mail:578708965@qq.com

个人公众号:数据小魔方(datamofang)

团队公众号:EasyCharts

qq交流群:[魔方学院]553270834

leafletjs 热力图_leaflet在线地图——常用热力地图相关推荐

  1. [地图]常用的地图结构

    占据栅格地图 参考 https://zhuanlan.zhihu.com/p/21738718 Octomap地图 将三维空间建模分割成许多的小方块,如果将每个小方块的每个面切成两片,那么这个小方块就 ...

  2. leafletjs 热力图_LeaFlet学习之热力图

    一.需要拖入的js #map{ height: 1000px; width: 1500px; } 如果想省事可在这里下载 二.配置中参数意思 var config = { //热力图的配置项 radi ...

  3. 如何用2分钟做出一张拥有“黑洞”和“脑洞”的热力地图?

    4月10日晚上,天文学家召开全球新闻发布会,宣布首次直接拍摄到黑洞的照片! 人类终于得以一窥宇宙黑洞的真面目,从此连光也无法逃逸的黑洞也不再神秘! 而这次的天文拍摄,从准备到数据分析,再到照片洗成,花 ...

  4. 新图表来袭,FineReport新增热力地图、漏斗图、图表切换新功能

    12月初,报表软件FineReport更新了图表插件V8.30,新增了热力地图.漏斗图.图表切换等七大新功能.新增内容如下: 一.热力地图 热力地图是用来展示地理空间中点分布密集情况的图表类型.其效果 ...

  5. Altair 画世界热力地图

    在用自己搜集的数据来画热力地图的时候,只需要向数据中添加id字段,就可以效仿官网给出的代码画出热力地图了.这需要知道每个国家或地区的id是什么.https://github.com/alisle/wo ...

  6. 在线加载谷歌地图—lyrs类型解析

    在线加载谷歌地图-lyrs类型解析 最近在用openlayers加载在线谷歌地图的时候总结了一下lyrs之后地图类型解析 m 标准路线图 r 某种改变的路线图(路线不明显) s 影像层(卫星图) y ...

  7. python画地图经纬度_Python 百度API 画出美美哒热力地图(代码 数据)

    作者:王大伟 前言 现在是晚上22:22,我是不是很2 周围的人都在跨年刷朋友圈 我一个人在办公室默默打开博客 准备写一篇文章为2017画下句点 之前在写葡萄酒数据分析那篇文章时 曾想过做一个葡萄酒分 ...

  8. 《ESMap平台如何在线绘制三维可视化地图-易景空间地图》

    最近在了解一些如何绘制三维地图的问题,其中有一个ESMap平台是使用了地图编辑器场景搭建的方式,并支持在线开发,可以达到快速开发三维可视化地图的目的.所以花了几天天的时间看看这方面的东西,并总结一下. ...

  9. python新年快乐表情包_【新年快乐,跨年文章】Python 百度API 画出美美哒热力地图(代码 数据)...

    作者:王大伟 Python爱好者社区唯一小编 博客:https://ask.hellobi.com/blog/wangdawei 关注Python爱好者社区回复热力地图即可获取本文数据和代码! 注:昨 ...

最新文章

  1. @responseBody和@RequestBody
  2. 不是广告--如何学Java,我说点不太一样的学习方式
  3. 00-深入学习cache
  4. 使用Fiddler进行iOS APP的HTTP/HTTPS抓包
  5. 使用Angular HTTP client对数据模型进行创建操作
  6. SAP官方提供的人脸识别API
  7. 自动化持续集成Jenkins
  8. Maven创建的Web项目无法使用EL表达式
  9. <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
  10. 利用MyEclipse连接数据库并自动生成基于注解或者XML的实体类
  11. MySQL建库建表语句
  12. Python: 常用的软件包
  13. linux将目录打包压缩,Linux系统文件、目录及文件系统的压缩与打包详解
  14. 洛谷P4563 [JXOI2018]守卫
  15. linkedin解封_工程师如何在LinkedIn上找到(以及如何隐藏)
  16. yml文件中${}的使用
  17. JAVA删除pdf空白页_【Spire.PDF教程】添加或删除 PDF 页面,调整页面顺序-word删除空白页...
  18. pacemaker+corosync的一些总结
  19. 组件实战(一)——导航栏设计
  20. 无线路由器管理界面连接。

热门文章

  1. 在线图片处理工具:让您的图片处理更加轻松
  2. 手机信号弱,怎样增强手机信号
  3. 四级单词自编故事记忆法Week5(5)
  4. java中int转long
  5. Redis安装与配置、centos虚拟机上配置自启动redis服务
  6. 【漏洞复现】永恒之蓝漏洞(MS17-010)
  7. 数字信号与图像处理实验三:图像处理基础与图像变换
  8. 微型计算机基础pdf,微型计算机的基础知识.pdf
  9. 反爬虫兵法演绎04 _ 爬虫的首轮攻势:如何低调地拿到自己想要的数据?
  10. 计算机主机的认识500字,电脑的说明文500字