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