/* * @Descripttion: * @version: * @Author: song * @Date: 2020-10-23 14:04:10 * @LastEditors: song * @LastEditTime: 2020-10-23 16:16:48 */ define([ "dojo/_base/declare", 'jimu/BaseWidget' ], function ( declare, BaseWidget ) { return declare("Cluster", [BaseWidget], { baseClass: "Cluster", postCreate: function () { this.inherited(arguments); }, destroy: function () { this.inherited(arguments); }, startup: function () { this.inherited(arguments); }, flag: false, click: function () { if (this.clusterLayer) {//判断是否创建了,如果创建了就是控制显示隐藏 this.flag = !this.flag; if (this.flag) { this.labelNode.innerHTML = "隐藏聚合图层"; } else { this.labelNode.innerHTML = "显示聚合图层"; } this.clusterLayer.clear(); this.clusterLayer = null; } else { this.flag = true; this.labelNode.innerHTML = "隐藏聚合图层"; } this.addClusterLayer(); }, addClusterLayer: function () { let layer1 = new DC.ClusterLayer('layer1') window.dcViewer.addLayer(layer1) let positions = generatePosition(1000) positions.forEach(item => { let billboard = new DC.Billboard(item, 'widgets/Cluster/images/camera.png') layer1.addOverlay(billboard) }) window.dcViewer.flyTo(layer1) this.clusterLayer = 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 } } }); });