Merge pull request #1381 from twpayne/vector-api-feature-style-function

[vector-api] Per-feature styleFunction
This commit is contained in:
Tom Payne
2013-12-16 03:07:20 -08:00
8 changed files with 88 additions and 11 deletions
@@ -6,6 +6,7 @@ goog.require('goog.events.EventType');
goog.require('goog.functions');
goog.require('ol.ViewHint');
goog.require('ol.extent');
goog.require('ol.layer.Vector');
goog.require('ol.render.canvas.ReplayGroup');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.renderer.vector');
@@ -194,6 +195,9 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
this.dirty_ = false;
var styleFunction = vectorLayer.getStyleFunction();
if (!goog.isDef(styleFunction)) {
styleFunction = ol.layer.Vector.defaultStyleFunction;
}
var replayGroup = new ol.render.canvas.ReplayGroup();
vectorSource.forEachFeatureInExtent(extent,
/**
@@ -227,6 +231,10 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature =
function(feature, resolution, styleFunction, replayGroup) {
var loading = false;
var styles = styleFunction(feature, resolution);
// FIXME if styles is null, should we use the default style?
if (!goog.isDefAndNotNull(styles)) {
return false;
}
// simplify to a tolerance of half a CSS pixel
var squaredTolerance = resolution * resolution / 4;
var i, ii, style, imageStyle, imageState;