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 相关文章推荐
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
Oct 18 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
浅谈JavaScript中的Math.atan()方法的使用
Jun 14 Javascript
jQuery预加载图片常用方法
Jun 15 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
Aug 25 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
Jul 02 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 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
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python实现视频下载功能
2017/03/14 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Python守护进程实现过程详解
2020/02/10 Python
如何使用python传入不确定个数参数
2020/02/18 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
调解员先进事迹材料
2014/02/07 职场文书
父母对孩子的寄语
2014/04/09 职场文书
运动会演讲稿200字
2014/08/25 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
MySQL学习总结-基础架构概述
2021/04/05 MySQL
python 如何获取页面所有a标签下href的值
2021/05/06 Python
MySQL索引失效的典型案例
2021/06/05 MySQL