leaflet在线地图之热力密度图

之前在练习leaflet的时候没有找到R语言leaflet中的热力密度图接口函数,一直感觉很遗憾。

最近在Stack Overflow上面发现了leaflet包的一个插件leaflet.esri包,结合leaflet可以在R语言中提供非常完美的热力密度图解决方案,顿时觉得发现了新大陆,立马分享给大家具体的实现思路。

library("leaflet")
library("leafletCN")
library("leaflet.extras")
library("xlsx")
mydata <- read.xlsx(
  "D:/Python/File/Cities2015.xlsx",
  sheetName="Sheet1",
  header=T,
  encoding='UTF-8',
  stringsAsFactors=FALSE,
  check.names=FALSE
  ) %>% 
na.omit()

1、默认状态下热力图效果:

leaflet(mydata) %>%
  addTiles() %>%
  addHeatmap(lng = ~lon, lat = ~lat, radius = 8)

2、通过addTiles加载高德地图:

leaflet(mydata) %>%
    addTiles(    'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
    options = tileOptions(tileSize=256,minZoom=4,maxZoom=17),
    attribution='&copy; <a href="http://ditu.amap.com/">高德地图</a>',
    ) %>%
  addHeatmap(lng = ~lon, lat = ~lat, radius = 8)

3、这里可以借用leafletCN::amap函数简化高德地图的调用,该函数封装了高德地图api的接口

leaflet(mydata) %>% leafletCN::amap() %>%
  addHeatmap(lng = ~lon, lat = ~lat, radius = 8)

4、当然腾讯地图的调用也是可以支持的:

leaflet(mydata) %>%
     addTiles(         'http://rt{s}.map.gtimg.com/realtimerender?z={z}&x={x}&y={y}&type=vector&style=0',
        options = tileOptions(tms=TRUE, tileSize=256, minZoom=4, maxZoom=17, subdomains="0123"),
        attribution = '&copy; <a href="http://map.qq.com/">腾讯地图</a>'
    ) %>%  setView(116.40,39.90, zoom = 4) %>%
     addHeatmap(lng = ~lon, lat = ~lat, radius = 8)

以上参数中tileSize控制默认显式地图窗口面积,minZoom代码缩放的最大级别(比例尺越大),同理maxZoom=17代表缩放的最小级别(比例尺越小)。

如果你还想了解leafelt更为丰富的用法和特性,请参考以下这些分享,期待大家可以将这些在线地图丰富的可视化特性结合shiny容器打造出更具业务价值的数据分析看板和仪表盘,也期待同样喜欢可视化的小伙伴儿可以一起线上线下交流。

动态地理信息可视化——leaflet在线地图简介

动态地理信息可视化——散点地图系列

动态地理信息可视化——leaflet构造路径图

动态地理信息可视化——leaflet填充地图

Leaflet在线地图进阶宝典——json素材操纵与图层面板控制

leaflet在线地图进阶宝典之——高级辅助特性

leaflet在线地图进阶宝典——高级交互特性

leaflet的小搭档leaflet.minicharts来了,从此动态地图又多了一些乐趣~~~

原文发布于微信公众号 - 数据小魔方(datamofang)

原文发表时间:2018-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏风口上的猪的文章

终于,我也要出一本C#的书了 - 我的写作历程与C#书单推荐

我于2012年3月开始工作,到现在马上就满六年了。这六年里,我从一个连Sql server是什么都不知道,只会写最简单的c#的程序员开始做起,一步一步从一个籍籍...

17440
来自专栏程序人生

如何提高代码质量?

好的程序员从来不靠格子衫或者颜值吃饭,就像你家 C 罗明明可以靠脸,却非要用不断精进的身体和技术迷倒你。

13400
来自专栏斑斓

晴窗闲谈 | 从Go语言的设计学习设计决策

阅读了Rob Pike撰写的《Go在谷歌:以软件工程为目的的语言设计》,颇多感触。这些感触并不在于语言层面,或者Go这门语言的语法以及底层实现;而是因为语言设计...

39370
来自专栏风口上的猪的文章

.NET面试题系列[0] - 写在前面

经过了四年的C#开发工作,我除了获得到的offer之外,还面试失败或拒掉了不少offer,加起来面试的次数至少有30次。这些面试有质量很高的,也有泛泛而谈的,不...

20320
来自专栏顶级程序员

帮你提升 Python 的 27 种编程语言

编译:开源中国 www.oschina.net/translate/languages-to-improve-your-python 原文:http://...

57960
来自专栏Golang语言社区

GO 开发者对 GO 初学者的建议

注:原文地址为 Advise from Go developers to Go programming newbies 以促进 India 的 go 编程作为 ...

37460
来自专栏企鹅号快讯

Python实现拼图游戏

最近,要说最火的编程语言莫过于Python了。除了占据各种网站编程语言的排行榜之外,最劲爆的消息就是教育部将Python语言纳入计算机等级考试,并且山东某学校已...

67290
来自专栏斑斓

利用聚合概念指导MongoDB的Schema设计

在我们的项目中,为了能够保存分析报表以及用户设置的报表查询条件,我们将这些信息视为报表元数据存储在MongoDB中。要存储的元数据包括:

15520
来自专栏C语言及其他语言

学习C语言编译器的选择

来源:C语言网 很多初学C语言的同学可能遇到的首要问题,就是选择编译器,用什么编程软件? 然而通过了解之后发现有那么多编程软件,什么VC6.0,Dev ,Cod...

67860
来自专栏林欣哲

科个普啦—抽象的理念

抽象是我们生活中普遍使用的一个概念,比如说你今天要出门,跟司机说“去科技园”,我们就用到了抽象的概念,我们只描述了去某个地方,而不是深入的描述,“左转,直走一个...

36880

扫码关注云+社区

领取腾讯云代金券