diff --git a/docs/config.rst b/docs/config.rst index c430ed8..2e32c8e 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -99,6 +99,13 @@ Maximum image side length to be allowed to be rendered (including scale factor). Be careful when changing this value since there are hardware limits that need to be considered. Default is ``2048``. +``watermark`` +----------- + +Optional string to be rendered into the raster tiles (and static maps) as watermark (bottom-left corner). +Can be used for hard-coding attributions etc. (can also be specified per-style). +Not used by default. + ``styles`` ========== diff --git a/src/serve_rendered.js b/src/serve_rendered.js index 7ad805a..b7d5ca9 100644 --- a/src/serve_rendered.js +++ b/src/serve_rendered.js @@ -50,6 +50,8 @@ module.exports = function(options, repo, params, id, dataResolver) { var rootPath = options.paths.root; + var watermark = params.watermark || options.watermark; + var styleFile = params.style; var map = { renderers: [], @@ -357,6 +359,19 @@ module.exports = function(options, repo, params, id, dataResolver) { if (opt_overlay) { image.overlayWith(opt_overlay); } + if (watermark) { + var canvas = new Canvas(scale * width, scale * height); + var ctx = canvas.getContext('2d'); + ctx.scale(scale, scale); + ctx.font = '10px sans-serif'; + ctx.strokeWidth = '1px'; + ctx.strokeStyle = 'rgba(255,255,255,.4)'; + ctx.strokeText(watermark, 5, height - 5); + ctx.fillStyle = 'rgba(0,0,0,.4)'; + ctx.fillText(watermark, 5, height - 5); + + image.overlayWith(canvas.toBuffer()); + } var formatQuality = (params.formatQuality || {})[format] || (options.formatQuality || {})[format];