import { EventHandler } from "../../src/render/eventhandler"; /** * 图像层的有序集合。 */ export class ImageryLayerCollection extends EventHandler { static EventType = { layerAdded: 'layerAdded', layerRemoved: 'layerRemoved', layerMoved: 'layerMoved', layerShownOrHidden: 'layerShownOrHidden', } private _layers: any = []; constructor() { super(); } get length() { return this._layers.length; } add(layer: any, index?: number) { this._layers.push(layer) this.fire('layerAdded'); } remove(layer: any, destroy: boolean = true) { var index = this._layers.indexOf(layer); if (index !== -1) { this._layers.splice(index, 1); this._update(); this.fire("layerRemoved"); if (destroy) { layer.destroy(); } return true; } return false; }; removeAll(destroy: boolean = true) { var layers = this._layers; for (var i = 0, len = layers.length; i < len; i++) { var layer = layers[i]; this.fire('layerRemoved') if (destroy) { layer.destroy(); } } this._layers = []; }; contains(layer: any) { return this.indexOf(layer) !== -1; }; indexOf(layer: any) { return this._layers.indexOf(layer); }; _update() { } }