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}
*/
function(feature) {
var styleFunction = feature.getStyleFunction() ||
vectorLayer.getStyleFunction();
goog.asserts.assert(goog.isDef(styleFunction));
var dirty = this.renderFeature(
feature, resolution, pixelRatio, styleFunction, replayGroup);
this.dirty_ = this.dirty_ || dirty;
var styles;
if (goog.isDef(feature.getStyleFunction())) {
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(
feature, resolution, pixelRatio, styles, replayGroup);
this.dirty_ = this.dirty_ || dirty;
}
};
if (!goog.isNull(vectorLayerRenderOrder)) {
/** @type {Array.<ol.Feature>} */
@@ -249,13 +254,12 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
* @param {ol.Feature} feature Feature.
* @param {number} resolution Resolution.
* @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.
* @return {boolean} `true` if an image is loading.
*/
ol.renderer.canvas.VectorLayer.prototype.renderFeature =
function(feature, resolution, pixelRatio, styleFunction, replayGroup) {
var styles = styleFunction(feature, resolution);
function(feature, resolution, pixelRatio, styles, replayGroup) {
if (!goog.isDefAndNotNull(styles)) {
return false;
}