Merge pull request #1926 from fredj/cache-anchor

Compute anchor value only once
This commit is contained in:
Frédéric Junod
2014-05-01 23:23:18 +02:00
+11 -1
View File
@@ -52,6 +52,12 @@ ol.style.Icon = function(opt_options) {
*/ */
this.anchor_ = goog.isDef(options.anchor) ? options.anchor : [0.5, 0.5]; this.anchor_ = goog.isDef(options.anchor) ? options.anchor : [0.5, 0.5];
/**
* @private
* @type {Array.<number>}
*/
this.normalizedAnchor_ = null;
/** /**
* @private * @private
* @type {ol.style.IconAnchorOrigin} * @type {ol.style.IconAnchorOrigin}
@@ -129,6 +135,9 @@ goog.inherits(ol.style.Icon, ol.style.Image);
* @todo api * @todo api
*/ */
ol.style.Icon.prototype.getAnchor = function() { ol.style.Icon.prototype.getAnchor = function() {
if (!goog.isNull(this.normalizedAnchor_)) {
return this.normalizedAnchor_;
}
var anchor = this.anchor_; var anchor = this.anchor_;
var size = this.getSize(); var size = this.getSize();
if (this.anchorXUnits_ == ol.style.IconAnchorUnits.FRACTION || if (this.anchorXUnits_ == ol.style.IconAnchorUnits.FRACTION ||
@@ -161,7 +170,8 @@ ol.style.Icon.prototype.getAnchor = function() {
anchor[1] = -anchor[1] + size[1]; anchor[1] = -anchor[1] + size[1];
} }
} }
return anchor; this.normalizedAnchor_ = anchor;
return this.normalizedAnchor_;
}; };