87 lines
1.7 KiB
JavaScript
87 lines
1.7 KiB
JavaScript
goog.provide('ol.layer.Layer');
|
|
|
|
goog.require('goog.asserts');
|
|
goog.require('goog.events');
|
|
goog.require('goog.events.EventType');
|
|
goog.require('goog.object');
|
|
goog.require('ol.layer.Base');
|
|
goog.require('ol.source.Source');
|
|
|
|
|
|
|
|
/**
|
|
* @constructor
|
|
* @extends {ol.layer.Base}
|
|
* @param {ol.layer.LayerOptions} options Layer options.
|
|
* @todo stability experimental
|
|
*/
|
|
ol.layer.Layer = function(options) {
|
|
|
|
var baseOptions = /** @type {ol.layer.LayerOptions} */
|
|
(goog.object.clone(options));
|
|
delete baseOptions.source;
|
|
|
|
goog.base(this, baseOptions);
|
|
|
|
/**
|
|
* @private
|
|
* @type {ol.source.Source}
|
|
*/
|
|
this.source_ = options.source;
|
|
|
|
goog.events.listen(this.source_, goog.events.EventType.CHANGE,
|
|
this.handleSourceChange_, false, this);
|
|
|
|
};
|
|
goog.inherits(ol.layer.Layer, ol.layer.Base);
|
|
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
ol.layer.Layer.prototype.getLayersArray = function(opt_array) {
|
|
var array = (goog.isDef(opt_array)) ? opt_array : [];
|
|
array.push(this);
|
|
return array;
|
|
};
|
|
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
ol.layer.Layer.prototype.getLayerStatesArray = function(opt_obj) {
|
|
var obj = (goog.isDef(opt_obj)) ? opt_obj : {
|
|
layers: [],
|
|
layerStates: []
|
|
};
|
|
goog.asserts.assert(obj.layers.length === obj.layerStates.length);
|
|
obj.layers.push(this);
|
|
obj.layerStates.push(this.getLayerState());
|
|
return obj;
|
|
};
|
|
|
|
|
|
/**
|
|
* @return {ol.source.Source} Source.
|
|
* @todo stability experimental
|
|
*/
|
|
ol.layer.Layer.prototype.getSource = function() {
|
|
return this.source_;
|
|
};
|
|
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
ol.layer.Layer.prototype.getSourceState = function() {
|
|
return this.getSource().getState();
|
|
};
|
|
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
ol.layer.Layer.prototype.handleSourceChange_ = function() {
|
|
this.dispatchChangeEvent();
|
|
};
|