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 相关文章推荐
Fixie.js 自动填充内容的插件
Jun 28 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
js控制div层的叠加简单方法
Oct 15 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
Dec 05 Javascript
Vue.js学习之过滤器详解
Jan 22 Javascript
简单实现js进度条加载效果
Mar 25 Javascript
webpack的pitching loader详解
Sep 23 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
解决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
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
Python实现的石头剪子布代码分享
2014/08/22 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python模块导入的方法
2019/10/24 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
django创建css文件夹的具体方法
2020/07/31 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
自荐信结尾
2013/10/27 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
自我鉴定标准格式
2014/03/19 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
升学宴祝酒词
2015/08/11 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js