Distinct style function types

This commit is contained in:
Antoine Abt
2014-07-11 09:33:24 +02:00
parent 60f1874766
commit b7b5de659b

View File

@@ -212,12 +212,17 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
* @this {ol.renderer.canvas.VectorLayer} * @this {ol.renderer.canvas.VectorLayer}
*/ */
function(feature) { function(feature) {
var styleFunction = feature.getStyleFunction() || var styles;
vectorLayer.getStyleFunction(); if (goog.isDef(feature.getStyleFunction())) {
goog.asserts.assert(goog.isDef(styleFunction)); styles = feature.getStyleFunction().call(feature, resolution);
} else if (goog.isDef(vectorLayer.getStyleFunction())) {
styles = vectorLayer.getStyleFunction()(feature, resolution);
}
if (goog.isDefAndNotNull(styles)) {
var dirty = this.renderFeature( var dirty = this.renderFeature(
feature, resolution, pixelRatio, styleFunction, replayGroup); feature, resolution, pixelRatio, styles, replayGroup);
this.dirty_ = this.dirty_ || dirty; this.dirty_ = this.dirty_ || dirty;
}
}; };
if (!goog.isNull(vectorLayerRenderOrder)) { if (!goog.isNull(vectorLayerRenderOrder)) {
/** @type {Array.<ol.Feature>} */ /** @type {Array.<ol.Feature>} */
@@ -249,13 +254,12 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
* @param {number} resolution Resolution. * @param {number} resolution Resolution.
* @param {number} pixelRatio Pixel ratio. * @param {number} pixelRatio Pixel ratio.
* @param {ol.style.StyleFunction} styleFunction Style function. * @param {Array.<ol.style.Style>} styles Array of styles
* @param {ol.render.canvas.ReplayGroup} replayGroup Replay group. * @param {ol.render.canvas.ReplayGroup} replayGroup Replay group.
* @return {boolean} `true` if an image is loading. * @return {boolean} `true` if an image is loading.
*/ */
ol.renderer.canvas.VectorLayer.prototype.renderFeature = ol.renderer.canvas.VectorLayer.prototype.renderFeature =
function(feature, resolution, pixelRatio, styleFunction, replayGroup) { function(feature, resolution, pixelRatio, styles, replayGroup) {
var styles = styleFunction(feature, resolution);
if (!goog.isDefAndNotNull(styles)) { if (!goog.isDefAndNotNull(styles)) {
return false; return false;
} }