/*
|
* @Descripttion:
|
* @version:
|
* @Author: song
|
* @Date: 2020-10-23 14:04:10
|
* @LastEditors: song
|
* @LastEditTime: 2020-10-23 16:00:07
|
*/
|
///////////////////////////////////////////////////////////////////////////
|
// Copyright © 2018 NarutoGIS. All Rights Reserved.
|
// 模块描述:热图实现,集成第三方js
|
///////////////////////////////////////////////////////////////////////////
|
define([
|
"dojo/_base/declare",
|
"dojo/_base/lang",
|
'dojo/_base/html',
|
"dojo/_base/fx",
|
'jimu/BaseWidget'
|
], function (
|
declare,
|
lang,
|
html,
|
fx,
|
BaseWidget
|
) {
|
return declare("HeatMap", [BaseWidget], {
|
baseClass: "HeatMap",
|
postCreate: function () {
|
this.inherited(arguments);
|
},
|
destroy: function () {
|
|
this.inherited(arguments);
|
},
|
|
startup: function () {
|
this.inherited(arguments);
|
},
|
flag: false,
|
click: function () {
|
if (this.heatMap) {//判断是否创建了,如果创建了就是控制显示隐藏
|
this.flag = !this.flag;
|
|
if (this.flag) {
|
this.labelNode.innerHTML = "隐藏热图";
|
} else {
|
this.labelNode.innerHTML = "显示热图";
|
}
|
|
this.heatMap.show(this.flag);
|
} else {
|
this.addHeatmap();
|
this.flag = true;
|
this.labelNode.innerHTML = "隐藏热图";
|
}
|
},
|
|
addHeatmap: function () {
|
let layer1 = new DC.HeatLayer('layer1')
|
window.dcViewer.addLayer(layer1)
|
let positions = generatePosition(1000)
|
layer1.setPositions(positions)
|
setInterval(() => {
|
let positions = generatePosition(1000)
|
layer1.setPositions(positions)
|
}, 2000)
|
window.dcViewer.flyTo(layer1)
|
this.heatMap = layer1;
|
function generatePosition(num) {
|
var list = []
|
for (var i = 0; i < num; i++) {
|
var lng = 120.38105869 + Math.random() * 0.5
|
var lat = 31.10115627 + Math.random() * 0.5
|
list.push(new DC.Position(lng, lat))
|
}
|
return list
|
}
|
}
|
});
|
});
|