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插件jquery倒计时插件分享
Dec 27 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
Oct 11 Javascript
使表格的标题列可左右拉伸jquery插件封装
Nov 24 Javascript
简介JavaScript中的setHours()方法的使用
Jun 11 Javascript
老生常谈JavaScript中的this关键字
Oct 01 Javascript
浅谈jquery页面初始化的4种方式
Nov 27 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
详解用函数式编程对JavaScript进行断舍离
Sep 18 Javascript
微信小程序实现商城倒计时
Nov 01 Javascript
JS回调函数 callback的理解与使用案例分析
Sep 09 Javascript
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
ElementUI实现el-form表单重置功能按钮
Jul 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中iconv函数使用方法
2008/05/24 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
php数据序列化测试实例详解
2017/08/12 PHP
如何在PHP中读写文件
2020/09/07 PHP
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
python写入xml文件的方法
2015/05/08 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
python保存网页图片到本地的方法
2018/07/24 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
对python模块中多个类的用法详解
2019/01/10 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
在python里面运用多继承方法详解
2019/07/01 Python
python 三元运算符使用解析
2019/09/16 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
社团活动策划书范文
2014/01/09 职场文书
安全大检查实施方案
2014/02/22 职场文书
小学生期末评语大全
2014/04/21 职场文书
在职证明书模板
2015/06/15 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers