百度热力图python_如何利用百度API绘制热力图

本文介绍了如何使用Python结合百度地图API来绘制热力图。首先,从data.csv文件中读取经纬度数据,然后申请百度API获取访问AK。接着,通过处理JSON数据并替换HTML模板中的内容,生成output.html文件,展示热力图。同时调整了中心点、地图缩放程度、点的半径以及数据的最大值以优化效果。
摘要由CSDN通过智能技术生成

最近需要绘制热力图,下一阶段要做一些数据分析的脚本。

基础:Python3+百度地图API

Part1 原始数据

经纬度数值大约有几百个,统一保存为data.csv文件

Part2 百度API申请

利用百度API,得到一个浏览器端应用的访问AK XjKKSYQ2Dv****************************

Part3 获取HTML源代码

左侧(添加热力图)-(点击运行)-(点击显示热力图) 可见demo中的默认热力图

把该demo代码中“您的密钥” 替换成 刚才申请过的访问AK XjKKSYQ2Dv****************************

有些操作代码的方法是:第一步生成如下标准格式(命名为json_final)

{"lng":116.418261,"lat":39.921984,"count":50},{.....}

第二步保存到json,然后打开json文件,复制所有json内容替换var points 里面的内容(说起来,里面代码的json结果多了一个',',导致调试失败,仔细看才看出来,很好做,利用list[:-1]大法可破

但是我很懒 怎么办

手动把文件input.html中的 var points =[.....] 改成var points =[jsonToBePlaced]

用replace函数把json_final替换掉jsonToBePlaced,point_lon和point_lat替换中心点坐标(116.418261, 39.921984)生成需要的output.html文件

import json,csv

with open(r'data.csv', 'r') as csvfile: #打开csv

reader = csv.reader(csvfile)

stringTemp = ''

for line in reader: #读取csv数据

if reader.line_num == 1: # 忽略第1行

continue

lon = line[0].strip()

lat = line[1].strip()

stringTemp += '{"lng":' + str(lon) + ',"lat":' + str(lat) + ',"count":' + str(25) +'},'

str_final = stringTemp[:-1] # 最后一位多1个',' 切割字符串只取前面的数据

point_lon = str_final.split(',')[0].split(':')[1].strip() # 设置地图默认点的经度

point_lat = str_final.split(',')[1].split(':')[1].strip() # 设置地图默认点的纬度

Part4 其他说明

挨个试了一下这个demo的参数,仅供参考

(1)BMap.Point(116.418261, 39.921984);

中心点坐标,这是以后热力图的默认中心,可以换成自己想要的

我换成了天津老火车站的经纬度

(2)map.centerAndZoom(point, 15);

地图缩放程度默认15,这个值变小,相当于执行缩小操作;值变大,相当于放大操作

我改成了8

(3)heatmapOverlay = new BMapLib.HeatmapOverlay({"radius":20});

每个点半径的大小,默认为20,该值越大,在地图上点覆盖面越大

我改成了8

(4) heatmapOverlay.setDataSet({data:points,max:100});

数量最大值默认为100

由于json里面还要填一个count值,我反复试了一下

count取25,max取30的时候可实现所需效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值