Merge branch 'mapconfig-aggregation' of github.com:CartoDB/Windshaft-cartodb into mapconfig-aggregation

This commit is contained in:
Daniel García Aubert 2017-12-14 14:15:20 +01:00
commit 8ee4a2c049

View File

@ -50,6 +50,7 @@ const SUPPORTED_AGGREGATE_FUNCTIONS = {
};
const aggregateColumns = ctx => {
// TODO: always add count
let columns = ctx.columns || {};
if (Object.keys(columns).length === 0) {
// default aggregation
@ -71,8 +72,8 @@ const aggregateColumns = ctx => {
};
// Notes:
// * ${ctx.res*0.00028/256}*!scale_denominator! is equivalent to
// ${ctx.res/256}*CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!))
// * ${256*0.00028/ctx.res}*!scale_denominator! is equivalent to
// ${256/ctx.res}*CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!))
// * We need to filter spatially using !bbox! to make the queries efficient because
// the filter added by Mapnik (wrapping the query)
// is only applied after the aggregation.
@ -82,7 +83,7 @@ const aggregationQueryTemplates = {
'centroid': ctx => `
WITH _cdb_params AS (
SELECT
(${ctx.res*0.00028/256}*!scale_denominator!)::double precision AS res,
(${256*0.00028/ctx.res}*!scale_denominator!)::double precision AS res,
!bbox! AS bbox
)
SELECT
@ -104,7 +105,7 @@ const aggregationQueryTemplates = {
'point-grid': ctx => `
WITH _cdb_params AS (
SELECT
(${ctx.res*0.00028/256}*!scale_denominator!)::double precision AS res,
(${256*0.00028/ctx.res}*!scale_denominator!)::double precision AS res,
!bbox! AS bbox
),
_cdb_clusters AS (
@ -117,7 +118,7 @@ const aggregationQueryTemplates = {
GROUP BY _cdb_gx, _cdb_gy
)
SELECT
ST_SetSRID(ST_MakePoint(_cdb_gx*(res+0.5), _cdb_gy*(res*0.5)), 3857) AS the_geom_webmercator,
ST_SetSRID(ST_MakePoint(_cdb_gx*(res+0.5), _cdb_gy*(res+0.5)), 3857) AS the_geom_webmercator,
_cdb_feature_count
FROM _cdb_clusters, _cdb_params
`,
@ -126,7 +127,7 @@ const aggregationQueryTemplates = {
WITH _cdb_params AS (
SELECT
(${ctx.res*0.00028/256}*!scale_denominator!)::double precision AS res,
(${256*0.00028/ctx.res}*!scale_denominator!)::double precision AS res,
!bbox! AS bbox
), _cdb_clusters AS (
SELECT