最近看了一下百度的热力图,通过百度地图,确实是一个实时大数据渲染的一个形象表达形式,正好借这个机会学习一下,刚买的机械键盘,发现有两个好处:每天不写点代码(或调试),感觉对不起这价钱啊,估计我之前买的所有键盘+鼠标花费总和都不如这个键盘贵;其次就是控制自己不再吃零食了,怕掉进键盘里心疼啊。

      好了,热力图还是相对比较容易,我们主要讨论如下3+1点吧,主要是前三部分,后面只是简单分析一下百度热力图和个人的简单看法。热点图的实现参考了SuperMap的热点图和百度Echarts的热点图实现。

  • 原理

  • 实现

  • 优化

  • 百度热力图简述

原理

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

 

      如上是全国范围内的截图,一看就能了解当前中国人口密集度。每个区域的形状不规则,而且还五颜六色。直觉上,我们会觉得每个区域都应该有一个位置点,还应该有一个缓冲范围,然后对这个范围内进行一个渐变效果。这个思路应该还是比较理性的,只是还是无法解释区域的不规则,但抽象了位置点(XY)和渐变(五颜六色)的数据概念。那我们再结合数据,看看我们的推理是否准确。

 

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

 

      这是一个示例数据,可见每一个HeatPoint由三部分组成(X,Y,Weight)。这个和我们之前分析的比较类似,每一个热点都有一个位置和权重,权重越大,则该点越显著,也就代表其渐变的一个衰变因素。不规则的区域又是如何形成的?看完代码后发现,是每个热点各管各的,然后相互叠加影响,形成了最终具有真实意义的奇形怪状的热点图。想想也是,不然好看不实用,那热点图的设计也就本末倒置了。另外还有一个半径属性,主要是缓冲区的半径,表示该热点的影响范围,通常我们认为所有热点的影响范围即半径都是一样的,只是权重不同,这也是为了处理的方便。

 

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

网友评论