Listen for all camera property changes

This commit is contained in:
Tom Payne
2012-07-11 21:20:05 +02:00
parent 9c0ce6e635
commit 5c40e1d570

View File

@@ -2,8 +2,10 @@ goog.provide('ol.MapRenderer');
goog.require('goog.array');
goog.require('goog.events');
goog.require('goog.object');
goog.require('ol.Array');
goog.require('ol.Camera');
goog.require('ol.CameraProperty');
goog.require('ol.LayerRenderer');
goog.require('ol.Object');
goog.require('ol.Projection');
@@ -36,6 +38,12 @@ ol.MapRenderer = function(target, opt_values) {
*/
this.target_ = target;
/**
* @private
* @type {Array.<number>}
*/
this.cameraListenerKeys_ = null;
/**
* @private
* @type {Array.<number>}
@@ -109,6 +117,26 @@ ol.MapRenderer.prototype.getTarget = function() {
* @protected
*/
ol.MapRenderer.prototype.handleCameraChanged = function() {
if (!goog.isNull(this.cameraListenerKeys_)) {
goog.array.forEach(this.cameraListenerKeys_, goog.events.unlistenByKey);
this.cameraListenerKeys_ = null;
}
var camera = this.getCamera();
if (!goog.isNull(camera)) {
this.cameraListenerKeys_ = goog.array.map(
goog.object.getValues(ol.CameraProperty),
function(cameraProperty) {
return goog.events.listen(camera, cameraProperty,
this.handleCameraPropertyChanged, false, this);
});
}
};
/**
* @protected
*/
ol.MapRenderer.prototype.handleCameraPropertyChanged = function() {
};