85 lines
1.6 KiB
JavaScript
85 lines
1.6 KiB
JavaScript
goog.provide('ol.dom.LayerRenderer');
|
|
|
|
goog.require('ol.Coordinate');
|
|
goog.require('ol.LayerRenderer');
|
|
|
|
|
|
|
|
/**
|
|
* @constructor
|
|
* @extends {ol.LayerRenderer}
|
|
* @param {ol.MapRenderer} mapRenderer Map renderer.
|
|
* @param {ol.Layer} layer Layer.
|
|
* @param {!Element} target Target.
|
|
*/
|
|
ol.dom.LayerRenderer = function(mapRenderer, layer, target) {
|
|
goog.base(this, mapRenderer, layer);
|
|
|
|
/**
|
|
* @type {!Element}
|
|
* @protected
|
|
*/
|
|
this.target = target;
|
|
|
|
/**
|
|
* Top left corner of the target in map coords.
|
|
*
|
|
* @type {ol.Coordinate}
|
|
* @protected
|
|
*/
|
|
this.origin = null;
|
|
|
|
this.handleLayerOpacityChange();
|
|
this.handleLayerVisibleChange();
|
|
|
|
};
|
|
goog.inherits(ol.dom.LayerRenderer, ol.LayerRenderer);
|
|
|
|
|
|
/**
|
|
* @override
|
|
* @return {ol.MapRenderer} Map renderer.
|
|
*/
|
|
ol.dom.LayerRenderer.prototype.getMapRenderer = function() {
|
|
return /** @type {ol.dom.MapRenderer} */ goog.base(this, 'getMapRenderer');
|
|
};
|
|
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
ol.dom.LayerRenderer.prototype.handleLayerLoad = function() {
|
|
this.getMap().render();
|
|
};
|
|
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
ol.dom.LayerRenderer.prototype.handleLayerOpacityChange = function() {
|
|
goog.style.setOpacity(this.target, this.getLayer().getOpacity());
|
|
};
|
|
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
ol.dom.LayerRenderer.prototype.handleLayerVisibleChange = function() {
|
|
goog.style.showElement(this.target, this.getLayer().getVisible());
|
|
};
|
|
|
|
|
|
/**
|
|
*/
|
|
ol.dom.LayerRenderer.prototype.render = goog.abstractMethod;
|
|
|
|
|
|
/**
|
|
* Set the location of the top left corner of the target.
|
|
*
|
|
* @param {ol.Coordinate} origin Origin.
|
|
*/
|
|
ol.dom.LayerRenderer.prototype.setOrigin = function(origin) {
|
|
this.origin = origin;
|
|
};
|