diff --git a/src/ol/interaction/DragAndDrop.js b/src/ol/interaction/DragAndDrop.js index e8f942521a..f3519db365 100644 --- a/src/ol/interaction/DragAndDrop.js +++ b/src/ol/interaction/DragAndDrop.js @@ -140,24 +140,21 @@ class DragAndDrop extends Interaction { } const formatConstructors = this.formatConstructors_; - let features = []; for (let i = 0, ii = formatConstructors.length; i < ii; ++i) { const format = new formatConstructors[i](); - features = this.tryReadFeatures_(format, result, { + const features = this.tryReadFeatures_(format, result, { featureProjection: projection, }); if (features && features.length > 0) { if (this.source_) { this.source_.clear(); - this.source_.addFeatures( - /** @type {Array} */ (features) - ); + this.source_.addFeatures(features); } this.dispatchEvent( new DragAndDropEvent( DragAndDropEventType.ADD_FEATURES, file, - /** @type {Array} */ (features), + features, projection ) ); @@ -217,11 +214,13 @@ class DragAndDrop extends Interaction { * @param {string} text Text. * @param {import("../format/Feature.js").ReadOptions} options Read options. * @private - * @return {Array} Features. + * @return {Array} Features. */ tryReadFeatures_(format, text, options) { try { - return format.readFeatures(text, options); + return + /** @type {Array} */ + (format.readFeatures(text, options)); } catch (e) { return null; }