Add a style option for vector layers

This can be a single ol.style.Style, and array of styles, or a style function.
This commit is contained in:
Tim Schaub
2014-02-07 09:17:21 -07:00
parent 990a852d4f
commit 499ba4ac8f
2 changed files with 29 additions and 4 deletions
+1 -1
View File
@@ -532,7 +532,7 @@
* @property {number|undefined} opacity Opacity. 0-1. Default is `1`. * @property {number|undefined} opacity Opacity. 0-1. Default is `1`.
* @property {number|undefined} saturation Saturation. * @property {number|undefined} saturation Saturation.
* @property {ol.source.Vector} source Source. * @property {ol.source.Vector} source Source.
* @property {ol.feature.StyleFunction|undefined} styleFunction Style function. * @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style Layer style.
* @property {boolean|undefined} visible Visibility. Default is `true` (visible). * @property {boolean|undefined} visible Visibility. Default is `true` (visible).
* @todo stability experimental * @todo stability experimental
*/ */
+28 -3
View File
@@ -1,7 +1,9 @@
goog.provide('ol.layer.Vector'); goog.provide('ol.layer.Vector');
goog.require('goog.asserts');
goog.require('ol.feature'); goog.require('ol.feature');
goog.require('ol.layer.Layer'); goog.require('ol.layer.Layer');
goog.require('ol.style.Style');
/** /**
@@ -27,9 +29,32 @@ ol.layer.Vector = function(opt_options) {
goog.base(this, /** @type {olx.layer.LayerOptions} */ (options)); goog.base(this, /** @type {olx.layer.LayerOptions} */ (options));
// FIXME veryify this if (goog.isDef(options.style)) {
if (goog.isDef(options.styleFunction)) {
this.setStyleFunction(options.styleFunction); /**
* @type {ol.feature.StyleFunction}
*/
var styleFunction;
if (goog.isFunction(options.style)) {
styleFunction = /** @type {ol.feature.StyleFunction} */ (options.style);
} else {
/**
* @type {Array.<ol.style.Style>}
*/
var styles;
if (goog.isArray(options.style)) {
styles = options.style;
} else {
goog.asserts.assertInstanceof(options.style, ol.style.Style);
styles = [options.style];
}
styleFunction = function(feature, resolution) {
return styles;
};
}
this.setStyleFunction(styleFunction);
} }
}; };