溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

heatmapjs怎么在vue中使用

發(fā)布時(shí)間:2021-03-26 16:22:31 來(lái)源:億速云 閱讀:929 作者:Leah 欄目:web開(kāi)發(fā)

heatmapjs怎么在vue中使用?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

代碼如下。

<!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="點(diǎn)擊查看數(shù)組內(nèi)容" onclick="getindex()"/>
<div class="demo-wrapper">
  <div class="heatmap" >
    <div><img src="image/1.jpg" ></div>
   </div>
</div>
</body>
 
<script src="js/heatmap.min.js"></script>
<script>
  <!--heapmap熱力圖-->
  var heatmapInstance = h437.create({
    container: document.querySelector('.heatmap'),
    radius: 50
  });
  document.querySelector('.demo-wrapper').onmousemove = function(ev) {
    heatmapInstance.addData({
      x: ev.layerX,
      y: ev.layerY,
      value: 1
    });
  };
 
  <!--鼠標(biāo)點(diǎn)擊-->
  var pointx = new Array();
  var pointy = new Array();
  var i = 0;//數(shù)組下標(biāo)
  function mouseMove(ev) {
    Ev = ev || window.event;
    var mousePos = mouseCoords(ev);
    document.getElementById("xxx").value = mousePos.x;
    pointx[i] = document.getElementById("xxx").value ;//x坐標(biāo)值寫(xiě)入數(shù)組
    console.log("x:"+document.getElementById("xxx").value);
    document.getElementById("yyy").value = mousePos.y;
    pointy[i] = document.getElementById("yyy").value;//y坐標(biāo)值寫(xiě)入數(shù)組
    console.log("y:"+document.getElementById("yyy").value);
    //  執(zhí)行完之后數(shù)組下標(biāo)加一
    i++;
    console.log(i);//打印下標(biāo)
  }
  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("當(dāng)前屏幕分辨率是:"+s);
    <!--動(dòng)態(tài)改變div寬高-->
    $(".heatmap").width($("body").width());
    $(".heatmap").height($("body").height());
  });
</script>
</html>

需要引入的js在https://github.com/pa7/heatmap.js  獲取。

vue中使用heatmapjs

百度地圖怎么使用就不說(shuō)了,主要講講這個(gè)heatmap,直接貼代碼了,注釋挺詳細(xì)的

 //vue組件中
data(){
  return{
    heatmapOverlay:""
  }
},
mounted() {
  //引用heatmap.js
  //你也可以在index.html中直接插個(gè) <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);  
  
  //創(chuàng)建地圖,這個(gè)寫(xiě)自己的創(chuàng)建地圖方法,請(qǐng)確認(rèn)你的地圖能加載出來(lái)
  this.creatMap();
  
  //一定要先讓地圖加載出來(lái)才加載熱力圖,我這里做演示直接寫(xiě)個(gè)setTimeout了
  setTimeout(()=>{this.getHeatmap()},2000)
 },
methods:{
  getHeatmap() {
    //請(qǐng)求雷達(dá)數(shù)據(jù),雷達(dá)數(shù)據(jù)需要lng,lat,count 三種數(shù)據(jù)
   this.$http
    .get("../../../static/radar20.json")
    .then(res => {
     if (res.data.code == "success") {
      console.log("獲取radar成功");
      var bigdata = res.data.data;
       
       //關(guān)鍵是下面的三行
       //其中map是new BMap.Map()創(chuàng)建的地圖實(shí)例,其他的熱力圖屬性(radius,opacity這種)可以在百度地圖接口實(shí)例中調(diào)試體驗(yàn),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);
    });
  },
}

效果圖:

heatmapjs怎么在vue中使用

看完上述內(nèi)容,你們掌握heatmapjs怎么在vue中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI