diff --git a/src/ol/format/kml.js b/src/ol/format/kml.js index 881ebe0405..e1fb2584d0 100644 --- a/src/ol/format/kml.js +++ b/src/ol/format/kml.js @@ -1092,13 +1092,13 @@ ol.format.KML.setCommonGeometryProperties_ = function(multiGeometry, ol.format.KML.DataParser_ = function(node, objectStack) { var name = node.getAttribute('name'); ol.xml.parseNode(ol.format.KML.DATA_PARSERS_, node, objectStack); - var featureObject = - /** @type {Object} */ (objectStack[objectStack.length - 1]); + var featureObject = /** @type {Object} */ (objectStack[objectStack.length - 1]); if (name !== null) { featureObject[name] = featureObject.value; } else if (featureObject.displayName !== null) { featureObject[featureObject.displayName] = featureObject.value; } + delete featureObject['value']; }; diff --git a/test/spec/ol/format/kml.test.js b/test/spec/ol/format/kml.test.js index 46a7ea25d2..ea0169d28a 100644 --- a/test/spec/ol/format/kml.test.js +++ b/test/spec/ol/format/kml.test.js @@ -1580,9 +1580,31 @@ describe('ol.format.KML', function() { expect(fs).to.have.length(1); var f = fs[0]; expect(f).to.be.an(ol.Feature); + expect(f.getProperties()).to.only.have.keys(['foo', 'geometry']); expect(f.get('foo')).to.be('bar'); }); + it('can read ExtendedData with no values', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' 200' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getProperties()).to.only.have.keys(['foo', 'bar', 'geometry']); + expect(f.get('foo')).to.be('200'); + expect(f.get('bar')).to.be(undefined); + }); + it('can read ExtendedData with displayName instead of name', function() { var text = '' +