diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index da15f119b3..b49ff250d9 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -323,6 +323,10 @@ ol.layer.Vector.prototype.parseFeatures = function(data, parser, projection) { goog.asserts.assert(typeof parser.readFeaturesFromString === 'function', 'Expected a parser with readFeaturesFromString method.'); features = parser.readFeaturesFromString(data, {callback: callback}); + } else if (typeof data === 'object') { + goog.asserts.assert(typeof parser.readFeaturesFromObject === 'function', + 'Expected a parser with a readFeaturesFromObject method.'); + features = parser.readFeaturesFromObject(data, {callback: callback}); } else { // TODO: parse more data types throw new Error('Data type not supported: ' + data); diff --git a/src/ol/parser/geojson.js b/src/ol/parser/geojson.js index 94624e3d7a..ce5d0e27c4 100644 --- a/src/ol/parser/geojson.js +++ b/src/ol/parser/geojson.js @@ -51,6 +51,19 @@ ol.parser.GeoJSON.prototype.readFeaturesFromString = }; +/** + * Parse a GeoJSON feature collection from decoded JSON. + * @param {GeoJSONFeatureCollection} object GeoJSON feature collection decoded + * from JSON. + * @param {ol.parser.ReadFeaturesOptions=} opt_options Reader options. + * @return {Array.} Array of features. + */ +ol.parser.GeoJSON.prototype.readFeaturesFromObject = + function(object, opt_options) { + return this.parseFeatureCollection_(object, opt_options); +}; + + /** * @param {GeoJSONObject} json GeoJSON object. * @return {ol.Feature|Array.|