diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index bc1342026d..8c77219fe1 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -505,6 +505,13 @@ * supported. */ +/** + * @typedef {Object} olx.render.FeaturesOverlayOptions + * @property {Array.|ol.Collection|undefined} features Features. + * @property {ol.Map|undefined} map Map. + * @property {ol.style.StyleFunction|undefined} styleFunction Style function. + */ + /** * @typedef {Object} olx.source.BingMapsOptions * @property {string|undefined} culture Culture code. Default is `en-us`. diff --git a/src/ol/render/featuresoverlay.exports b/src/ol/render/featuresoverlay.exports new file mode 100644 index 0000000000..38cf3f5d98 --- /dev/null +++ b/src/ol/render/featuresoverlay.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.render.FeaturesOverlay +@exportProperty ol.render.FeaturesOverlay.prototype.getFeatures +@exportProperty ol.render.FeaturesOverlay.prototype.setFeatures +@exportProperty ol.render.FeaturesOverlay.prototype.setMap +@exportProperty ol.render.FeaturesOverlay.prototype.setStyleFunction diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index 4885dcd872..2166e25164 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -15,8 +15,11 @@ goog.require('ol.render.EventType'); /** * @constructor + * @param {olx.render.FeaturesOverlayOptions=} opt_options Options. */ -ol.render.FeaturesOverlay = function() { +ol.render.FeaturesOverlay = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : options; /** * @private @@ -54,6 +57,23 @@ ol.render.FeaturesOverlay = function() { */ this.styleFunction_ = undefined; + if (goog.isDef(options.features)) { + if (goog.isArray(options.features)) { + this.setFeatures(new ol.Collection(goog.array.clone(options.features))); + } else { + goog.asserts.assertInstanceof(options.features, ol.Collection); + this.setFeatures(options.features); + } + } + + if (goog.isDef(options.styleFunction)) { + this.setStyleFunction(options.styleFunction); + } + + if (goog.isDef(options.map)) { + this.setMap(options.map); + } + };