From 3c00266666fc749d7ae99eb5a16515ed3cc35c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 21 Dec 2017 20:00:17 +0100 Subject: [PATCH] Add support for aggregated columns in mvt format --- .../models/aggregation/aggregation-mapconfig.js | 12 ++++++++++++ .../adapter/aggregation-mapconfig-adapter.js | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/lib/cartodb/models/aggregation/aggregation-mapconfig.js b/lib/cartodb/models/aggregation/aggregation-mapconfig.js index bf334338..6e9b71d0 100644 --- a/lib/cartodb/models/aggregation/aggregation-mapconfig.js +++ b/lib/cartodb/models/aggregation/aggregation-mapconfig.js @@ -72,6 +72,18 @@ module.exports = class AggregationMapConfig extends MapConfig { }); } + getAggregatedColumns (index) { + const { aggregation } = this.getLayer(index).options; + + if (aggregation === undefined || aggregation.columns === undefined) { + return []; + } + + return aggregation.columns + .map(({ aggregated_column }) => aggregated_column) + .filter(aggregated_column => typeof aggregated_column === 'string'); + } + isAggregationMapConfig () { return this.isVectorOnlyMapConfig() || this.hasAnyLayerAggregation(); } diff --git a/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js b/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js index 425aade7..99f68a0f 100644 --- a/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js +++ b/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js @@ -99,6 +99,10 @@ module.exports = class AggregationMapConfigAdapter { } layer.options.sql = aggregationSql; + + const aggregatedColumns = mapConfig.getAggregatedColumns(index); + + layer.options.columns = aggregatedColumns; } return resolve({ layer, index, adapted: shouldAdapt });