地图可视化那些事|一文带你了解地理热力图的来源、原理和使用

内容导航
契机
1 什么是地理热力图?
2 地理热力图的一些应用场景
3 地理热力图的原理和构成元素
4 如何创建地理热力图
1 准备坐标点数据
2 选择地图底图,修改参数,生成你需要的热力图
5 如何简单快速地创建地理热力图
6 一些注意事项
1. 数据的可靠性和合理性
2. 热力图点半径大小的设置
3. 热力点颜色渐变的设置
契机
今天有读者在微信上问我地理可视化工具EasyDataV使用时的一些问题,涉及到了地理热力图的原理。

关于热力图的原理,我在做EasyDataV这个工具时,陆续整理了一些文档,今天就给大家分享一下这块的知识吧。
1 什么是地理热力图?
1991 年,一位名叫 Cormac Kinney 的软件设计师正在探索如何更好地呈现实时金融市场信息。在他的思考下,热力图,英文名称叫Heat Map,首次提出并创造了出来。
最初的热力图是简单的矩形色块加上颜色编码,用来表示数据点的密度和权重等信息。由于其直观、易懂的特点,热力图很快就被广泛应用于数据可视化和分析领域。

地理热力图,英文名称叫Geographic Heat Map,从它的名称上,你就能看出来 ,它是一种基于地图底图制作的热力图。用来展示各种数据在空间上的分布规律,比如人口密度、房价分布、交通流量等。
它可以将数据的空间分布和趋势更为准确地展现出来,从而帮助人们更好地理解和应用数据。
2 地理热力图的一些应用场景
从上面的概念中,你已经对热力图有一个基础的了解,这个名字可能听起来比较玄乎,但是实际上就是我们常说的密度图,或者分布图,以下是其中几个典型的应用场景:
市场营销:地理热力图可以帮助市场人员更好地了解客户分布情况和消费习惯等信息。比如,可以基于地理热力图来选择合适的营销区域、推广产品或服务。
城市规划和交通管理:地理热力图可以帮助政府部门更好地了解城市交通拥堵情况和人口密度等信息,以及对公共交通线路进行优化调整等。
旅游景点推荐:地理热力图可以帮助游客更好地了解旅游景点和周边设施等信息,从而提高旅游体验。同时,也可以帮助景区管理者更好地了解游客分布情况和需求,进行精细化管理。
商业分析:地理热力图可以帮助企业更好地了解客户分布情况和消费习惯等信息,从而制定更精准的营销策略和商业计划。
除此之外,地理热力图还可以应用于人口统计、科学研究、环境监测等领域。总之,地理热力图是一种非常实用的数据可视化工具,可以让我们更好地展示和理解各种地理信息数据,并为各行各业提供更多的便利和创新。
3 地理热力图的原理和构成元素
理解了地理热力图的概念,我们再从原理和构成层面来深入理解一下地理热力图。
地理热力图的原理简单来说就是将大量坐标数据在地图打点,打点的越多,就会根据打点的密集程度,呈现热力图。
例如以下是深圳市小区的分布图,从这个可视化地图上你可以直观地看到哪些区域的小区分布密度比较大,哪些比较少。

再通过热力图来渲染一下,是不是就更为直观了呢?
因为热力图采用的是渐进式渲染的方式进行绘制,即渲染每一个热力图点时,会考虑到周围所有点的权重值,并将该点的颜色和大小进行相应的调整。最终,所有点都被渲染完成,形成一个类似于“热力”的效果。

总结来说:地理热力图的核心组成元素有三个:热力图点(即坐标点)、权重和地图底图。
其中,权重是根据坐标点的分布根据一定的算法来生成的,而权重的大小,又决定了你看到的颜色深浅和分布。
如果你懂一点编辑知识,你在使用地图厂商提供的热力图接口时,会发现,你需要设置两个核心参数:
radius:热力图点的半径
opacity:热力图点的透明度
var heatmap;
map.plugin(["AMap.Heatmap"], function () {
//初始化heatmap对象
heatmap = new AMap.Heatmap(map, {
radius: 25, //给定半径
opacity: [0, 0.8]
/*,
gradient:{
0.5: 'blue',
0.65: 'rgb(117,211,248)',
0.7: 'rgb(0, 255, 0)',
0.9: '#ffea00',
1.0: 'red'
}
*/
});
//设置数据集:该数据为北京部分“公园”数据
heatmap.setDataSet({
data: data.heatmapData,
max: 100
});
});
如何理解两个参数呢?
热力图点半径的单位为像素(px),半径越大,表示每个点所代表的数值权重范围也就越大,这样就能够更加准确地反映出数据点的分布情况和趋势特征。当然,半径也不能过大,否则会导致热力图点重叠、无法区分等问题,影响数据的可视化呈现效果。
热力图点的透明度越高,表示每个点的权重值越低,颜色也就越淡,反之则越浓。这样就能够更加直观地展示数据点的分布情况和趋势特征。同时,设置透明度还可以使地图底图得到更好的展示,增强数据可视化呈现的效果。
有点抽象,我们来说一个具体的案例,以下是同样的坐标点生成的两个热力图,一个半径是5px,一个半径是25px,我们看看它们的效果.

很明显,同样的坐标点,半径越大,视觉效果越明显,即半径是影响权重的核心参数。
4 如何创建地理热力图
通过上面的内容,你已经了解了热力图的原理和构成,这也决定了如果你要创建一个地理热力图,关键的步骤有三个:
1 准备坐标点数据:
首先需要有要展示的数据集,其中包含了需要展示在地图上的数据。数据集通常由坐标点,一般来说坐标点是需要经过地理编码通过地址转换而来,如果你不知道如何转换,可以使用人文帮公众号推出的地址标准化工具。
详见
地址标准化那些事|百度地图版EasyAddress:省时省钱省力,帮你解决地址解析和街道查询难题!
EasyGeo高德地图版:一键实现地址批量标准化,支持批量查询地址所属街道或乡镇
2 选择地图底图,修改参数,生成你需要的热力图。:
你需要根据实际需求选择合适的地图库,比如百度地图、高德地图等,并学习其 API 的使用方法。

当然你可以选择一些专业的数据可视化工具,如Echarts,Antv等,这样工具的核心还是对以上各大地图厂商提供的热力图服务进行的二次封装。

5 如何简单快速地创建地理热力图
上面提到的一些创建地理热力图工具,都是面向企业内的开发人员,或者具有一定编程基础的数据分析人员使用的。
它需要你具备一定的编程能力,才可以驾驭这些热力图。
如果你没有任何编程基础,你可以使用人文帮公众号推出的EasyDatav来简单快捷地生成热力图。
详见:
不敲一行代码,如何在1分钟内生成四种网点分布图?
6 一些注意事项
做热力图时需要注意以下几点:
1. 数据的可靠性和合理性:
热力图的效果直接受到数据质量的影响,因此需要确保数据的可靠性和合理性。如果数据存在噪音、异常值或者缺失值等问题,都会影响热力图的使用效果。
这里最容易出错的就是坐标系的转换问题,一般来说你选择的地图底图需要和你输入的坐标点的坐标系一致,否则会有偏移。
如果你需要转换坐标,这个工具或者对你有所帮助。
《GIS坐标批量转换大师|一键批量转换,支持Excel导入导出,支持WGS84,BD09、GCJ02三种坐标系互转》
2. 热力图点半径大小的设置
热力图的点的半径大小会直接影响每个点周围的渐变范围,过小会使得热力点之间重叠过多,难以分辨,而过大则会失去细节,无法准确反映数据的分布情况。因此需要根据实际需求和数据特征进行合理的设置。
3. 热力点颜色渐变的设置
热力图的颜色渐变直接决定了热力点在地图上的视觉效果,在设置颜色渐变时需要考虑渲染效果和数据对比度,尽量避免颜色混乱和过于鲜艳的色彩。
这里我的建议是直接使用各大地图服务商预置的参数,基本满足需要了。