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 相关文章推荐
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
jquery时间下拉框小例子
Apr 15 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
Apr 28 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
javascript鼠标右键菜单自定义效果
Dec 08 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
原生JS实现京东查看商品点击放大
Dec 21 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 邮件发送问题解决
2014/03/22 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
React优化子组件render的使用
2019/05/12 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
python中requests小技巧
2017/05/10 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
英文自荐信
2013/12/19 职场文书
物业管理专业求职信
2014/06/11 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python