vue中使用heatmapjs的示例代碼(結(jié)合百度地圖)
業(yè)務(wù)需求:將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="點擊查看數(shù)組內(nèi)容" 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;//數(shù)組下標
function mouseMove(ev) {
Ev = ev || window.event;
var mousePos = mouseCoords(ev);
document.getElementById("xxx").value = mousePos.x;
pointx[i] = document.getElementById("xxx").value ;//x坐標值寫入數(shù)組
console.log("x:"+document.getElementById("xxx").value);
document.getElementById("yyy").value = mousePos.y;
pointy[i] = document.getElementById("yyy").value;//y坐標值寫入數(shù)組
console.log("y:"+document.getElementById("yyy").value);
// 執(zhí)行完之后數(shù)組下標加一
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);
<!--動態(tài)改變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);
//創(chuàng)建地圖,這個寫自己的創(chuàng)建地圖方法,請確認你的地圖能加載出來
this.creatMap();
//一定要先讓地圖加載出來才加載熱力圖,我這里做演示直接寫個setTimeout了
setTimeout(()=>{this.getHeatmap()},2000)
},
methods:{
getHeatmap() {
//請求雷達數(shù)據(jù),雷達數(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)建的地圖實例,其他的熱力圖屬性(radius,opacity這種)可以在百度地圖接口實例中調(diào)試體驗,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);
});
},
}
效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue keep-alive請求數(shù)據(jù)的方法示例
本篇文章主要介紹了vue keep-alive請求數(shù)據(jù)的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
element組件el-date-picker禁用當前時分秒之前的日期時間選擇
本文主要介紹了element組件el-date-picker禁用當前時分秒之前的日期時間選擇,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Vue前端如何實現(xiàn)與后端進行數(shù)據(jù)交互
這篇文章主要介紹了Vue前端如何實現(xiàn)與后端進行數(shù)據(jù)交互,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
vue實現(xiàn)el-menu與el-tabs聯(lián)動的項目實踐
本文講述了如何使用Vue.js中的ElementUI組件庫實現(xiàn)el-menu與el-tabs的聯(lián)動,通過在el-menu中選擇菜單項,可以切換el-tabs的內(nèi)容區(qū)域,具有一定的參考價值,感興趣的可以了解一下2023-11-11
vue 倒計時結(jié)束跳轉(zhuǎn)頁面實現(xiàn)代碼
在商場大家經(jīng)??吹酵\囀召M倒計時支付頁面,今天小編通過本文給大家分享vue 倒計時結(jié)束跳轉(zhuǎn)頁面功能,感興趣的朋友一起看看吧2023-10-10
你不知道的Vue技巧之--開發(fā)一個可以通過方法調(diào)用的組件(推薦)
這篇文章主要介紹了你不知道的Vue技巧之--開發(fā)一個可以通過方法調(diào)用的組件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

