From 17a73b1d4a0071c99f522d23e052cfb185d381ea Mon Sep 17 00:00:00 2001 From: stefslon Date: Thu, 8 Aug 2019 21:57:51 -0400 Subject: [PATCH] Add tileMargin option --- docs/config.rst | 3 ++- src/serve_rendered.js | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/config.rst b/docs/config.rst index 6d6f99f..ae82cbf 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -27,7 +27,8 @@ Example:: "maxSize": 2048, "pbfAlias": "pbf", "serveAllFonts": false, - "serveStaticMaps": true + "serveStaticMaps": true, + "tileMargin": 0 }, "styles": { "basic": { diff --git a/src/serve_rendered.js b/src/serve_rendered.js index 5a57f3f..ce8aba0 100644 --- a/src/serve_rendered.js +++ b/src/serve_rendered.js @@ -407,6 +407,13 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { params.width *= 2; params.height *= 2; } + + var tileMargin = Math.max(options.tileMargin || 0, 0); + if (z > 2 && tileMargin > 0) { + params.width += tileMargin * 2 * scale; + params.height += tileMargin * 2 * scale; + } + renderer.render(params, function(err, data) { pool.release(renderer); if (err) { @@ -421,6 +428,10 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { channels: 4 } }); + + if (z > 2 && tileMargin > 0) { + image.extract({ left: tileMargin * scale, top: tileMargin * scale, width: width * scale, height: height * scale }); + } if (z == 0) { // HACK: when serving zoom 0, resize the 0 tile from 512 to 256