From 10c4ec0b37508bb3132d919fb12b47b3259891c2 Mon Sep 17 00:00:00 2001 From: lucien Date: Thu, 16 May 2019 09:10:40 +0200 Subject: [PATCH] Only use 'pushSerializeAndPop' later in code to write extendedData after --- src/ol/format/KML.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ol/format/KML.js b/src/ol/format/KML.js index a767242ce4..7f6abf5475 100644 --- a/src/ol/format/KML.js +++ b/src/ol/format/KML.js @@ -2674,12 +2674,15 @@ function writePlacemark(node, feature, objectStack) { } // serialize properties (properties unknown to KML are not serialized) - let properties = feature.getProperties(); + const properties = feature.getProperties(); // don't export these to ExtendedData const filter = {'address': 1, 'description': 1, 'name': 1, 'open': 1, 'phoneNumber': 1, 'styleUrl': 1, 'visibility': 1}; filter[feature.getGeometryName()] = 1; + const keys = Object.keys(properties || {}).sort().filter(function(v) { + return !filter[v]; + }); const styleFunction = feature.getStyleFunction(); if (styleFunction) { @@ -2703,11 +2706,6 @@ function writePlacemark(node, feature, objectStack) { pushSerializeAndPop(context, PLACEMARK_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, values, objectStack, orderedKeys); - properties = feature.getProperties(); - const keys = Object.keys(properties || {}).sort().filter(function(v) { - return !filter[v]; - }); - if (keys.length > 0) { const sequence = makeSequence(properties, keys); const namesAndValues = {names: keys, values: sequence};