diff --git a/lib/carto/torque-reference.js b/lib/carto/torque-reference.js index 5f300d4..dc196eb 100644 --- a/lib/carto/torque-reference.js +++ b/lib/carto/torque-reference.js @@ -25,7 +25,10 @@ var _mapnik_reference_latest = { ["x-gradient", 0], ["y-gradient", 0], ["invert", 0], - ["sharpen", 0] + ["sharpen", 0], + ["colorize-alpha", -1], + ["color-to-alpha", 1], + ["scale-hsla", 8] ], "doc": "A list of image filters." }, @@ -160,7 +163,10 @@ var _mapnik_reference_latest = { ["x-gradient", 0], ["y-gradient", 0], ["invert", 0], - ["sharpen", 0] + ["sharpen", 0], + ["colorize-alpha", -1], + ["color-to-alpha", 1], + ["scale-hsla", 8] ], "doc": "A list of image filters." }, diff --git a/lib/carto/tree/value.js b/lib/carto/tree/value.js index a02353d..7e74e76 100644 --- a/lib/carto/tree/value.js +++ b/lib/carto/tree/value.js @@ -37,6 +37,11 @@ tree.Value.prototype = { } else if (val.is === 'field') { // replace [variable] by ctx['variable'] v = v.replace(/\[(.*)\]/g, "data['$1']"); + }else if (val.is === 'call') { + v = JSON.stringify({ + name: val.name, + args: val.args + }) } return "_value = " + v + ";"; } diff --git a/test/rendering_js.test.js b/test/rendering_js.test.js index a6ae419..b7fa962 100644 --- a/test/rendering_js.test.js +++ b/test/rendering_js.test.js @@ -74,6 +74,17 @@ describe('RenderingJS', function() { assert(layer0.getSymbolizers()[1] === 'line'); }); + it ("colorize should return a list of colours in same order", function() { + var style = '#test { image-filters: colorize-alpha(blue, cyan, green, yellow, orange, red); }'; + var shader = (new carto.RendererJS({ debug: true })).render(style); + var layer0 = shader.getLayers()[0]; + var st = layer0.getStyle({ value: 1 }, {"frame-offset": 0, "zoom": 3}); + var expectedColours = [[0, 0, 255], [0, 255, 255], [0, 128, 0], [255, 255, 0], [255, 165, 0], [255, 0, 0]]; + for (var i = 0; i < st["image-filters"].args; i++){ + assert (st["image-filters"].args[i].rgb === expectedColours[i]); + } + }); + it ("should return list of marker-files", function(){ var css = [ 'Map {',