1.需求

上篇说到可以批量获得地址的经纬度,根据这些经纬度及数量,就可以画出热力图了,热力图有挺多工具可以画的,例如,BDP,Echarts等。

这里就用百度地图API来画热力图。

2.过程

1.获取ak

在百度地图开放平台上,注册,创建应用获得自己的ak。

2.地图API示例

在地图API示例中,找到热力图示例,能看到示例HTML,需要修改的就是里面的ak和变量points的数据。

热力图示例.png

3. python中生成html

有了样例HTML,就可以根据需求进行修改,通过python生成HTML,这样每次跑出不同的数据,就可以生成不同的热力图了。

import webbrowser

data='json数据'

#打开文件,准备写入

current_date=time.strftime("%Y-%m-%d")

html="热力图.html"

f = open(html,'w',encoding='utf-8')

ht='{height:100%}'

body='{height:100%;margin:0px;padding:0px;font-family:"微软雅黑";}'

container="#container{height:90%;width:100%;}"

r='#r-result{width:100%;}'

gradient="{}"

message="""

热力图

ul,li{list-style: none;margin:0;padding:0;float:left;}

html%s

body%s

%s

%s

var map = new BMap.Map("container"); // 创建地图实例

var point = new BMap.Point(116.418261,39.921984);

map.centerAndZoom(point, 12); // 初始化地图,设置中心点坐标和地图级别

map.enableScrollWheelZoom(); // 允许滚轮缩放

var points = %s;

if(!isSupportCanvas()){

alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')

}

//详细的参数,可以查看heatmap.js的文档 https://github.com/pa7/heatmap.js/blob/master/README.md

//参数说明如下:

/* visible 热力图是否显示,默认为true

* opacity 热力的透明度,1-100

* radius 势力图的每个点的半径大小

* gradient 热力图的渐变区间 . gradient如下所示

* {

.2:'rgb(0, 255, 255)',

.5:'rgb(0, 110, 255)',

.8:'rgb(100, 0, 255)'

}

其中 key 表示插值的位置, 0~1.

value 为颜色值.

*/

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

map.addOverlay(heatmapOverlay);

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

//是否显示热力图

function openHeatmap(){

heatmapOverlay.show();

}

function closeHeatmap(){

heatmapOverlay.hide();

}

closeHeatmap();

function setGradient(){

/*格式如下所示:

{

0:'rgb(102, 255, 0)',

.5:'rgb(255, 170, 0)',

1:'rgb(255, 0, 0)'

}*/

var gradient = %s;

var colors = document.querySelectorAll("input[type='color']");

colors = [].slice.call(colors,0);

colors.forEach(function(ele){

gradient[ele.getAttribute("data-key")] = ele.value;

});

heatmapOverlay.setOptions({"gradient":gradient});

}

//判断浏览区是否支持canvas

function isSupportCanvas(){

var elem = document.createElement('canvas');

return !!(elem.getContext && elem.getContext('2d'));

}

"""%(ht,body,container,r,data,gradient)

#写入文件

f.write(message)

#关闭文件

f.close()

#运行完自动在网页中显示

webbrowser.open(html,new = 1)

这里将html代码当做文本,然后写入文件的方式,生成html。data就是json数据样式,由于我这里的数据太多,就不写在代码里了,示例:

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

{"lng":116.423332,"lat":39.916532,"count":51},

{"lng":116.419787,"lat":39.930658,"count":15}]

3. 效果

最后,生成的html,会在浏览器中打开,呈现的效果如下:

热力图.png

python 日本 地图 热力图_【python实战】热力图——百度地图API相关推荐

  1. echarts地图文字重叠解决方案_基于Echarts的百度地图叠加arcgis server的WMS图层服务...

    前言 前阵子利用echarts+百度地图做系统的门户首页,遇到一个要地图上叠加产业城影响范围示意图的需求.查阅文档之后,发现百度地图API确实提供了叠加自定义图层的方法,详情请看: 百度地图API的M ...

  2. js百度地图小车html,Web js实现百度地图实时轨迹画线 小车车行驶轨迹 | 彬菌

    版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 注意: 1.百度地图ak换成自己在百度地图官网申请 2.建议使用firefox浏览器,google被墙无法调用gp ...

  3. BaiduMap---百度地图官方Demo之调用百度地图(介绍如何调启百度地图实现自身业务功能)

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  4. python爬虫百度地图_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)...

    实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬 ...

  5. 爬虫python代码广告_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)...

    我是怎么想的,在新浪博客里写代码教程. 这篇博客的内容同步到了CSND博客中,那里不限制外链,也可以复制代码. http://blog.csdn.net/sinat_41310868/article/ ...

  6. python爬取地图上的经纬度_Python调用百度地图API爬取经纬度

    作者:国服帅座  经济学在读硕士 微信公众号:统计之家 你吃肯德基,我点麦当劳.本是替代品,却众口难调.每个人都有独特的偏好,都有一份要坚守的情怀.高德与百度,你心仪哪款呢? 认识百度地图API 百度 ...

  7. python调用百度地图实现导航_python 怎么调用百度地图api

    应用编程接口(Application programming interface,API)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或 ...

  8. python多进程编程实例_[python] Python多进程编程技术实例分析

    这篇文章主要介绍了Python多进程编程技术,包括了线程.队列.同步等概念及相关的技巧总结,需要的朋友可以参考下 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧. ...

  9. python怎么关闭浏览器_/python里webbrowser怎么关闭游览器

    python 中webbrowser 模块 点击页面上某个链接能否取得当前url? 急 1.微软的不能用 啥意思?没看懂你意思.请详细点解释. 2.还是没看懂,你: 已经有了哪些代码? 希望实现什么目 ...

  10. python查看excel编码格式_[Python]实现处理读写xlsx xls excel文件格式(含中文处理方法)...

    最近有个需求要处理excel 格式的数据,数据量比较大.用传统的语言似乎不太好处理,于是改用python实现,这里记录一下实现过程. 首先,科普一下xlsx xls的excel文件区别是什么. xls ...

最新文章

  1. 一文读懂Spring中的AOP机制
  2. Swift进阶_第一部分
  3. 一个比传统数据库快 100-1000 倍的数据库
  4. java虚拟机堆栈工作原理_java虚拟机工作原理?
  5. 来啦~ C++学习建议和学习资料
  6. 前端性能优化的重要方案:图片懒加载
  7. jQuery实现Ajax应用
  8. python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍
  9. php insert方法,lInsert 命令/方法/函数
  10. codeforces 360B
  11. JavaScript开发者的工具箱
  12. 喜大普奔,润乾全功能中文开源BI来了
  13. Scratch3.0创意编程(基础篇):第11课 智能小车
  14. 头歌-自己动手画CPU(第二关)-原码一位乘法器-Logisim
  15. 关于 kubernetes网络(CNI规范)中Calico,NetworkPolicy(网络策略)方面的一些笔记
  16. 关于TKK失败问题(亲测有用 超详细)
  17. 印度软件腾飞不是偶然
  18. iMX6UL开发板移植libcurl库
  19. 风险准备(金)这样(估)算,来年工作不白干
  20. 有关c基础指针需要注意的几个点!

热门文章

  1. 免费金融数据API(基金,股票),基金股票网格交易模拟服务
  2. 双系统装完只能u盘启动_安装双系统后没有双系统启动菜单怎么办?双系统启动菜单修复教程...
  3. 2020 MoDnet 视频抠图论文笔记
  4. Ubuntu 16.04 安装运行 ROVIO odometry
  5. 多频外差三维重建 投影仪非线性误差补偿
  6. 计算机键盘锁不了怎么办,键盘锁住了怎么解锁?键盘锁死了怎么办?
  7. php水印文字方向,ppt文本框文字方向为所有文字旋转的设置方法
  8. DirectX11教程5-贴图
  9. 远程windows蓝屏解决办法
  10. 三星android截屏快捷键是什么,三星s10截屏快捷键是什么