在地图上生成热力图
0 举例
python
import folium
from folium.plugins import HeatMap
# 创建一个地图对象
m = folium.Map(location=(1.34084, 103.83637), zoom_start=13)
# 创建一个坐标点的数据集
data = [(1.431656, 103.827896),
(1.424789, 103.789902),
(1.325781, 103.860446),
(1.321668, 103.859253),
(1.32256, 103.863782),
(1.326623, 103.868623),
(1.324007, 103.867133),
(1.315176, 103.861145),
(1.314064, 103.859144),
(1.309708, 103.858566)
]
# 创建一个 HeatMap 对象
heatmap = HeatMap(data)
# 将 HeatMap 对象添加到地图上
heatmap.add_to(m)
# 显示地图
m
1 主要参数
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| data
| 一个包含坐标点的列表 * 如果没有权重信息:data = [[lat_1, lon_1], [lat_2, lon_2], ..., [lat_n, lon_n]]
* 如果包含权重信息:data = [[lat_1, lon_1, weight_1], [lat_2, lon_2, weight_2], ..., [lat_n, lon_n, weight_n]]
其中 lat
代表纬度,lon
代表经度,weight
代表权重(数据强度) |
| data
| 带权重信息后 |
| name
| 图层的名称 |
| min_opacity
| 最小的透明度,取值范围从 0(完全透明)到 1(完全不透明) |
| min_opacity
| 不加min_opacity: 设置min_opacity为20 |
| max_zoom
| 用于计算热力图的最大缩放级别 |
| max_val
| 用于归一化热力图的数据的最大值 |
| radius
| 在热力图上每个"点"的半径大小 radius=100 |
| blur
| 点的模糊程度 |
| gradient
| 用于定义热力图颜色的颜色渐变对象 |
| gradient
| gradient={0.2: 'blue', 0.4: 'purple', 0.6: 'green', 1: 'red'} |
| overlay
| 如果为 True
,热力图将被添加为叠加层 |