|
|
@ -209,12 +209,14 @@ tree.Definition.prototype.toXML = function(env, existing) {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
tree.Definition.prototype.toJS = function(env) {
|
|
|
|
tree.Definition.prototype.toJS = function(env) {
|
|
|
|
|
|
|
|
var DEFAULT_ZOOM_VALUE = 8388607;
|
|
|
|
var shaderAttrs = {};
|
|
|
|
var shaderAttrs = {};
|
|
|
|
var frame_offset = this.frame_offset;
|
|
|
|
var frame_offset = this.frame_offset;
|
|
|
|
var zoomFilter = "(" + this.zoom + " & (1 << ctx.zoom))";
|
|
|
|
var zoomFilter = "(" + this.zoom + " & (1 << ctx.zoom))";
|
|
|
|
var filters = [zoomFilter];
|
|
|
|
var filters = [zoomFilter];
|
|
|
|
var originalFilters = this.filters.toJS(env);
|
|
|
|
var originalFilters = this.filters.toJS(env);
|
|
|
|
|
|
|
|
// Ignore default zoom for filtering (https://github.com/CartoDB/carto/issues/40)
|
|
|
|
|
|
|
|
var zoomFiltered = this.zoom !== DEFAULT_ZOOM_VALUE;
|
|
|
|
|
|
|
|
|
|
|
|
if (originalFilters) {
|
|
|
|
if (originalFilters) {
|
|
|
|
filters.push(originalFilters);
|
|
|
|
filters.push(originalFilters);
|
|
|
@ -235,8 +237,7 @@ tree.Definition.prototype.toJS = function(env) {
|
|
|
|
exportedRule.symbolizer = rule.symbolizer;
|
|
|
|
exportedRule.symbolizer = rule.symbolizer;
|
|
|
|
exportedRule.js = "if(" + filters.join(" && ") + "){" + rule.value.toJS(env) + "}";
|
|
|
|
exportedRule.js = "if(" + filters.join(" && ") + "){" + rule.value.toJS(env) + "}";
|
|
|
|
exportedRule.constant = rule.value.ev(env).is !== 'field';
|
|
|
|
exportedRule.constant = rule.value.ev(env).is !== 'field';
|
|
|
|
exportedRule.filtered = originalFilters !== '';
|
|
|
|
exportedRule.filtered = zoomFiltered || (originalFilters !== '');
|
|
|
|
|
|
|
|
|
|
|
|
shaderAttrs[rule.name] = shaderAttrs[rule.name] || [];
|
|
|
|
shaderAttrs[rule.name] = shaderAttrs[rule.name] || [];
|
|
|
|
shaderAttrs[rule.name].push(exportedRule);
|
|
|
|
shaderAttrs[rule.name].push(exportedRule);
|
|
|
|
});
|
|
|
|
});
|
|
|
|