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 =
'' +