vue中使用heatmapjs的示例代码(结合百度地图)


Posted in Javascript onSeptember 05, 2018

业务需求:将heatmap引入页面中,做成一个可引入的框架,使用于所有页面。代码如下。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <style>
    .heatmap {
      width:1900px; height:1900px;
    }
  </style>
  <script src="js/heatmap.min.js"></script>
  <script src="js/jquery.js"></script>
</head>
<body>
<input id=xxx type=hidden value="">
 
<input id=yyy type=hidden value="">
<input id="array" type="button" value="点击查看数组内容" onclick="getindex()"/>
<div class="demo-wrapper">
  <div class="heatmap" style="position: relative;">
    <div><img src="image/1.jpg" ></div>
   </div>
</div>
</body>
 
<script src="js/heatmap.min.js"></script>
<script>
  <!--heapmap热力图-->
  var heatmapInstance = h337.create({
    container: document.querySelector('.heatmap'),
    radius: 50
  });
  document.querySelector('.demo-wrapper').onmousemove = function(ev) {
    heatmapInstance.addData({
      x: ev.layerX,
      y: ev.layerY,
      value: 1
    });
  };
 
  <!--鼠标点击-->
  var pointx = new Array();
  var pointy = new Array();
  var i = 0;//数组下标
  function mouseMove(ev) {
    Ev = ev || window.event;
    var mousePos = mouseCoords(ev);
    document.getElementById("xxx").value = mousePos.x;
    pointx[i] = document.getElementById("xxx").value ;//x坐标值写入数组
    console.log("x:"+document.getElementById("xxx").value);
    document.getElementById("yyy").value = mousePos.y;
    pointy[i] = document.getElementById("yyy").value;//y坐标值写入数组
    console.log("y:"+document.getElementById("yyy").value);
    //  执行完之后数组下标加一
    i++;
    console.log(i);//打印下标
  }
  function mouseCoords(ev) {
    if (ev.pageX || ev.pageY) {
      return {x: ev.pageX, y: ev.pageY};
    }
    return {
      x: ev.clientX + document.body.scrollLeft - document.body.clientLeft,
      y: ev.clientY + document.body.scrollTop - document.body.clientTop
    };
  }
  document.onmousemove = mouseMove;
 
  $(function(){
    var s ="";
    s += window.screen.height+"*"+window.screen.width;
    console.log("当前屏幕分辨率是:"+s);
    <!--动态改变div宽高-->
    $(".heatmap").width($("body").width());
    $(".heatmap").height($("body").height());
  });
</script>
</html>

需要引入的js在https://github.com/pa7/heatmap.js  获取。

vue中使用heatmapjs

百度地图怎么使用就不说了,主要讲讲这个heatmap,直接贴代码了,注释挺详细的

//vue组件中
data(){
  return{
    heatmapOverlay:""
  }
},
mounted() {
  //引用heatmap.js
  //你也可以在index.html中直接插个 <script type="text/javascript" src="http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js"></script>

  let script = document.createElement("script");
  script.type = "text/javascript";
  script.src =
   "http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js";
  document.body.appendChild(script);  
  
  //创建地图,这个写自己的创建地图方法,请确认你的地图能加载出来
  this.creatMap();
  
  //一定要先让地图加载出来才加载热力图,我这里做演示直接写个setTimeout了
  setTimeout(()=>{this.getHeatmap()},2000)
 },
methods:{
  getHeatmap() {
    //请求雷达数据,雷达数据需要lng,lat,count 三种数据
   this.$http
    .get("../../../static/radar20.json")
    .then(res => {
     if (res.data.code == "success") {
      console.log("获取radar成功");
      var bigdata = res.data.data;
       
       //关键是下面的三行
       //其中map是new BMap.Map()创建的地图实例,其他的热力图属性(radius,opacity这种)可以在百度地图接口实例中调试体验,http://lbsyun.baidu.com/jsdemo.htm#c1_15
      this.heatmapOverlay = new BMapLib.HeatmapOverlay({ radius: 40,opacity:0.4});
      map.addOverlay(this.heatmapOverlay);
      this.heatmapOverlay.setDataSet({ data: bigdata, max: 20 });
       
     } else {
      console.log("err");
     }
    })
    .catch(err => {
     console.log(err);
    });
  },
}

效果图:

vue中使用heatmapjs的示例代码(结合百度地图)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让任务管理器中的CPU跳舞的js代码
Nov 01 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
Sep 06 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
基于jquery实现发送文章到手机的代码
Dec 26 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
Aug 16 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
Apr 03 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
JS精确判断数据类型代码实例
Dec 18 Javascript
解决vue点击控制单个样式的问题
Sep 05 #Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 #Javascript
vuejs点击class变化的实例
Sep 05 #Javascript
jQuery滑动效果实现方法分析
Sep 05 #jQuery
vue+springboot实现项目的CORS跨域请求
Sep 05 #Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 #jQuery
jQuery实现基本淡入淡出效果的方法详解
Sep 05 #jQuery
You might like
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
javascript基础知识讲解
2017/01/11 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
优秀学生自我鉴定范例
2013/12/18 职场文书
养成教育经验材料
2014/05/26 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
高一作文之暖冬
2019/11/09 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers