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 相关文章推荐
深入理解JavaScript系列(13) This? Yes,this!
Jan 18 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
深入浅出分析javaScript中this用法
May 09 Javascript
javascript实现密码验证
Nov 10 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
javascript闭包功能与用法实例分析
Apr 06 Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 Javascript
vue-cli 构建骨架屏的方法示例
Nov 08 Javascript
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
Jul 26 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
移动端js图片查看器
2016/11/17 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
python抓取百度首页的方法
2015/05/19 Python
Python随机读取文件实现实例
2017/05/25 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
如何通过命令行进入python
2020/07/06 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
食品安全责任书
2014/04/15 职场文书
企业标语大全
2014/07/01 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android