/* * @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 } } }); });