最近项目中需要使用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绘制热力图相关推荐

  1. 百度地图api绘制热力图

    生成热力图: //判断浏览器是否支持canvas function isSupportCanvas(){var elem = document.createElement('canvas'); ret ...

  2. Echarts结合百度地图API

    Echarts结合百度地图API 下面的代码运用到了Echarts 和百度地图API,地图的样式自定义的.(效果图在最下边) 运用到了百度API中的自定义控件,监听事件addEventListener ...

  3. android百度地图箭头,百度地图API绘制带头箭头的折线

    源代码: body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} #l-map{height:100%;wid ...

  4. 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址

    文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...

  5. 引用百度地图API完成热力图

    近期肺炎疫情信息闹的火热,就该情况完成来沪人员分布热力图以及标注确诊患者足迹.就开发研究中遇到的问题以及解决方案做一下记录,如下所示: 一.效果示意图 简述完成效果:百度地图引入,增加热力图,添加比例 ...

  6. heatmap.js调用百度地图api做热力图

    做热力图使用heatmap.js模块然后就是来挑用百度地图api是他展现在百度地图上面 一首先你要申请一个百度地图api接口的密钥 申请网址 申请密钥之后,先登录上自己的账号然后创建应用 三就是来取一 ...

  7. 百度地图API绘制轨迹

    百度地图Javascript API绘制轨迹 (首先贴两个网站: 1.百度地图API官方示例. 2.百度地图Javascript API v3.0参考类. 一.新建Html文档 新建文档可以直接从官方 ...

  8. 百度地图api 绘制乡镇边界

    我们在使用百度地图api想要展示苏州市吴中区各乡镇的行政区范围: 百度api有提供了"添加行政区划"的示例:http://lbsyun.baidu.com/jsdemo.htm#c ...

  9. 百度地图描绘轨迹html,百度地图API 绘制轨迹历史

    DOCTYPE html> 2 3 4 5 6 7 body, html{width:100%;height:100%;overflow:hidden;margin:0;font-family: ...

最新文章

  1. VSTO为Excel快捷菜单添加项
  2. [codevs 2926] 黑白瓷砖(2002年安徽省队选拔赛)
  3. .Net Core建站(2):EF Core+CodeFirst数据库迁移
  4. 利用 Node.js 实现 SAP Hana 数据库编程接口
  5. Orchard Core Framework:ASP.NET Core 模块化,多租户框架
  6. 《走遍中国》珍藏版(三)
  7. 面试:Java分派机制
  8. java 静态代码块
  9. 等压线上怎么画风向_圣诞贺卡怎么写?向你爱的人送上最有温度的祝福吧!
  10. python解非线性方程_python解非线性方程的问题
  11. 第五团队谷歌浏览器软件与用户体验调查与分析
  12. biztalk中架构验证、实例生成和验证
  13. Oracle 锁表查询语句及解锁
  14. html input限制输入小数,限制input输入小数只能到3位或者只能输入正整数(兼容ios)...
  15. php 牛顿冷却定律,基于用户投票的排名算法(四):牛顿冷却定律
  16. UVa 1600 巡逻机器人(Patrol Robot)
  17. 编程资料 -C# 多线程
  18. 计算机硬盘对计算机速度的影响,实测加密软件BitLocker对硬盘性能有何影响
  19. 运动健身行业门店运营管理解决方案
  20. rhel 7.3 安装 oracle,oracle8i在redhat7.1~7.3下的安装-数据库专栏,ORACLE

热门文章

  1. mapbox实现3d建筑物分层效果(类似单体化)
  2. 【转载】如何更容易地打开小米手机后盖
  3. 吐槽一波学校食堂的排队打饭体验
  4. 扔掉美图秀秀 试试这5款带特效的图片处理工具
  5. 华为android系统手机图片,关于华为手机获取图片并且加载的问题
  6. 预测和分类钻孔的毛刺钻孔切削ANN预测
  7. 理论:第十三章:堆溢出,栈溢出的出现场景以及解决方案
  8. maya动力学,铁锤碎墙
  9. html 获取视频文件的宽高尺寸,怎么获取视频的宽度-解决方案
  10. UITableViewCell 图片自适应