Echarts结合百度地图API绘制热力图
最近项目中需要使用echarts与百度地图API结合来绘制事故发生热力图,在将其与百度地图结合的过程中遇到了一些问题,现将其过程与解决方案记录下,以供日后参考。echarts中结合百度地图API的热力图demo:http://gallery.echartsjs.com/editor.html?c=xSJNKs7EX
使用步骤
1.引用echarts与百度地图扩展js文件
<!--引入百度地图的jssdk,这里需要使用你在百度地图开发者平台申请的 ak-->
<script src="http://api.map.baidu.com/api?v=2.0&ak="></script>
<!-- 引入 ECharts -->
<script src="dist/echarts.min.js"></script>
<!-- 引入百度地图扩展 -->
<script src="dist/extension/bmap.min.js"></script>
其实有个简单的方法直接在下载demo中的HTML页面即可,会以http形式引入相关文件,直接拿来用就好。
2.获取dom以及echarts初始化
需要获取放置地图div的dom元素,然后将echarts初始化,假如有多个js功能文件都要用到绘图的,这部分最后在主页面HTML中进行,相关代码如下:
var dom = document.getElementById("map");
var myChart = echarts.init(dom);
3.设置option绘制图形
使用echarts画图都需要定义好option配置项,然后调用函数进行设置,这部分最好单独放入一个函数中,方便后续其他需要绘图的调用,相关代码如下:
function drawHeatMap(points) {// var dom = document.getElementById("contentD");
// var myChart = echarts.init(dom);
// var app = {};option = null;
// app.title = '热力图与百度地图扩展';myChart.setOption(option = {animation: false,bmap: {center: [117.282699092,31.8669422607],zoom: 12,roam: true},visualMap: {show: false,top: 'top',min: 0,max: 100,seriesIndex: 0,calculable: true,inRange: {color: ['blue', 'blue', 'green', 'yellow', 'red']}},series: [{type: 'heatmap',coordinateSystem: 'bmap',data: points,pointSize: 5,blurSize: 6}]});
// if (!app.inNode) {// // 添加百度地图插件
// var map = myChart.getModel().getComponent('bmap').getBMap();
// map.addControl(new BMap.MapTypeControl());
// }if (option && typeof option === "object") {myChart.setOption(option, true);}}
4.获取百度地图扩展
最后需要获取地图对象,以便后续调用百度地图API,相关代码如下:
var map = myChart.getModel().getComponent('bmap').getBMap();
map.addControl(new BMap.MapTypeControl());
map.centerAndZoom("合肥",12);
map.enableScrollWheelZoom(true);
注意后续如果需要使用百度地图API中的函数画图,需要每次先调用上述代码第一行获取map对象,否则无法绘制。
5.最终结果
总结与感想
(1)项目中使用的是ajax获取数据,由于Ajax是异步的,所以需要把绘图的函数放入ajax的回调函数中,不然可能在还没获取完数据时,就已经执行了绘图代码。
(2)注意引入js文件的顺序,第一次画不出来就是因为没有把百度地图ak的sj文件放到echarts前面
(3)学会发现问题,定位问题以及解决问题。其实很多代码有bug没有想象中的那复杂,很多时候主体思路和框架都对了,就是一两行细节的问题,这时就需要反复利用调式手段,不断尝试,发现问题所在,不然前面可能都功亏一篑了。
参考:https://github.com/apache/incubator-echarts/tree/master/extension/bmap
http://gallery.echartsjs.com/editor.html?c=xSJNKs7EX
Echarts结合百度地图API绘制热力图相关推荐
- 百度地图api绘制热力图
生成热力图: //判断浏览器是否支持canvas function isSupportCanvas(){var elem = document.createElement('canvas'); ret ...
- Echarts结合百度地图API
Echarts结合百度地图API 下面的代码运用到了Echarts 和百度地图API,地图的样式自定义的.(效果图在最下边) 运用到了百度API中的自定义控件,监听事件addEventListener ...
- android百度地图箭头,百度地图API绘制带头箭头的折线
源代码: body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} #l-map{height:100%;wid ...
- 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址
文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...
- 引用百度地图API完成热力图
近期肺炎疫情信息闹的火热,就该情况完成来沪人员分布热力图以及标注确诊患者足迹.就开发研究中遇到的问题以及解决方案做一下记录,如下所示: 一.效果示意图 简述完成效果:百度地图引入,增加热力图,添加比例 ...
- heatmap.js调用百度地图api做热力图
做热力图使用heatmap.js模块然后就是来挑用百度地图api是他展现在百度地图上面 一首先你要申请一个百度地图api接口的密钥 申请网址 申请密钥之后,先登录上自己的账号然后创建应用 三就是来取一 ...
- 百度地图API绘制轨迹
百度地图Javascript API绘制轨迹 (首先贴两个网站: 1.百度地图API官方示例. 2.百度地图Javascript API v3.0参考类. 一.新建Html文档 新建文档可以直接从官方 ...
- 百度地图api 绘制乡镇边界
我们在使用百度地图api想要展示苏州市吴中区各乡镇的行政区范围: 百度api有提供了"添加行政区划"的示例:http://lbsyun.baidu.com/jsdemo.htm#c ...
- 百度地图描绘轨迹html,百度地图API 绘制轨迹历史
DOCTYPE html> 2 3 4 5 6 7 body, html{width:100%;height:100%;overflow:hidden;margin:0;font-family: ...
最新文章
- VSTO为Excel快捷菜单添加项
- [codevs 2926] 黑白瓷砖(2002年安徽省队选拔赛)
- .Net Core建站(2):EF Core+CodeFirst数据库迁移
- 利用 Node.js 实现 SAP Hana 数据库编程接口
- Orchard Core Framework:ASP.NET Core 模块化,多租户框架
- 《走遍中国》珍藏版(三)
- 面试:Java分派机制
- java 静态代码块
- 等压线上怎么画风向_圣诞贺卡怎么写?向你爱的人送上最有温度的祝福吧!
- python解非线性方程_python解非线性方程的问题
- 第五团队谷歌浏览器软件与用户体验调查与分析
- biztalk中架构验证、实例生成和验证
- Oracle 锁表查询语句及解锁
- html input限制输入小数,限制input输入小数只能到3位或者只能输入正整数(兼容ios)...
- php 牛顿冷却定律,基于用户投票的排名算法(四):牛顿冷却定律
- UVa 1600 巡逻机器人(Patrol Robot)
- 编程资料 -C# 多线程
- 计算机硬盘对计算机速度的影响,实测加密软件BitLocker对硬盘性能有何影响
- 运动健身行业门店运营管理解决方案
- rhel 7.3 安装 oracle,oracle8i在redhat7.1~7.3下的安装-数据库专栏,ORACLE