diff --git a/src/ol/format/KML.js b/src/ol/format/KML.js index 7679f5583f..6dc2b6f784 100644 --- a/src/ol/format/KML.js +++ b/src/ol/format/KML.js @@ -1800,7 +1800,10 @@ function dataParser(node, objectStack) { if (name && featureObject.displayName) { featureObject[name] = { value: featureObject.value, - displayName: featureObject.displayName + displayName: featureObject.displayName, + toString: function() { + return featureObject.value; + } }; } else if (name !== null) { featureObject[name] = featureObject.value; diff --git a/test/spec/ol/format/kml.test.js b/test/spec/ol/format/kml.test.js index b2991481b7..16de7be357 100644 --- a/test/spec/ol/format/kml.test.js +++ b/test/spec/ol/format/kml.test.js @@ -1670,6 +1670,25 @@ describe('ol.format.KML', function() { expect(f.get('bar')).to.be(undefined); }); + it('can read ExtendedData with displayName instead of name', function() { + const text = + '' + + ' ' + + ' ' + + ' ' + + ' foo' + + ' bar' + + ' ' + + ' ' + + ' ' + + ''; + const fs = format.readFeatures(text); + expect(fs).to.have.length(1); + const f = fs[0]; + expect(f).to.be.an(Feature); + expect(f.get('foo')).to.be('bar'); + }); + it('can read SchemaData', function() { const text = '' + @@ -1711,10 +1730,8 @@ describe('ol.format.KML', function() { const f = fs[0]; expect(f).to.be.an(Feature); expect(f.get('capital')).to.be('London'); - expect(f.get('country')).to.eql({ - value: 'United-Kingdom', - displayName: 'Country' - }); + expect(f.get('country').value).to.be('United-Kingdom'); + expect(f.get('country').displayName).to.be('Country'); }); });