From 129b3984b5e03defe73b2a8c34208cf4138433c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20H=C3=B8fft?= <6759267+MortenHofft@users.noreply.github.com> Date: Wed, 5 Oct 2022 12:58:50 +0200 Subject: [PATCH 1/3] thumbanil styles --- .../node/cartocss/scaled-circles-thumbnail-black.mss | 11 +++++++++++ .../main/node/cartocss/scaled-circles-thumbnail.mss | 11 +++++++++++ mapnik-server/src/main/node/styles.js | 4 ++++ 3 files changed, 26 insertions(+) create mode 100644 mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail-black.mss create mode 100644 mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail.mss diff --git a/mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail-black.mss b/mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail-black.mss new file mode 100644 index 00000000..d7e7d77d --- /dev/null +++ b/mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail-black.mss @@ -0,0 +1,11 @@ +#occurrence { + marker-line-width: 0; + marker-allow-overlap: true; + marker-fill: #000000; + + [total <= 10] { marker-width: 25; marker-fill: #000; marker-opacity: 1.0; marker-line-color: #000; marker-line-width: 1 } + [total > 10][total <= 100] { marker-width: 28; marker-fill: #000; marker-opacity: 0.8; marker-line-color: #000; marker-line-width: 0 } + [total > 100][total <= 1000] { marker-width: 30; marker-fill: #000; marker-opacity: 0.7; marker-line-color: #000; marker-line-width: 0 } + [total > 1000][total <= 10000] { marker-width: 32; marker-fill: #000; marker-opacity: 0.6; marker-line-color: #000; marker-line-width: 0 } + [total > 10000] { marker-width: 35; marker-fill: #000; marker-opacity: 0.6; marker-line-color: #000; marker-line-width: 0 } +} diff --git a/mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail.mss b/mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail.mss new file mode 100644 index 00000000..5f307c71 --- /dev/null +++ b/mapnik-server/src/main/node/cartocss/scaled-circles-thumbnail.mss @@ -0,0 +1,11 @@ +#occurrence { + marker-line-width: 0; + marker-allow-overlap: true; + marker-fill: #206EFF; + + [total <= 10] { marker-width: 25; marker-fill: #fed976; marker-opacity: 1.0; marker-line-color: #fe9724; marker-line-width: 1 } + [total > 10][total <= 100] { marker-width: 28; marker-fill: #fd8d3c; marker-opacity: 0.8; marker-line-color: #fd5b24; marker-line-width: 0 } + [total > 100][total <= 1000] { marker-width: 30; marker-fill: #fd8d3c; marker-opacity: 0.7; marker-line-color: #fd471d; marker-line-width: 0 } + [total > 1000][total <= 10000] { marker-width: 32; marker-fill: #f03b20; marker-opacity: 0.6; marker-line-color: #f01129; marker-line-width: 0 } + [total > 10000] { marker-width: 35; marker-fill: #bd0026; marker-opacity: 0.6; marker-line-color: #bd0047; marker-line-width: 0 } +} diff --git a/mapnik-server/src/main/node/styles.js b/mapnik-server/src/main/node/styles.js index befab8e4..3564114f 100644 --- a/mapnik-server/src/main/node/styles.js +++ b/mapnik-server/src/main/node/styles.js @@ -44,6 +44,10 @@ namedStyles["orange.marker"] = compileStylesheetSync("./cartocss/orange-marker.m // Adhoc map style for ES portal (mode=GEO_CENTROID) namedStyles["scaled.circles"] = compileStylesheetSync("./cartocss/scaled-circles.mss"); +// Adhoc map style for thumbnails (mode=GEO_CENTROID) +namedStyles["scaled.circles.thumbnail"] = compileStylesheetSync("./cartocss/scaled-circles-thumbnail.mss"); +namedStyles["scaled.circles.thumbnail.black"] = compileStylesheetSync("./cartocss/scaled-circles-thumbnail-black.mss"); + // Miscellaneous styles namedStyles["green2.poly"] = compileStylesheetSync("./cartocss/green2-poly.mss"); From 4ae98e1f72fb144a769b0aa68bd210f5bec5fe54 Mon Sep 17 00:00:00 2001 From: Matthew Blissett Date: Fri, 7 Oct 2022 18:41:25 +0200 Subject: [PATCH 2/3] Thumbnail style demo --- .../src/main/node/public/map/demo.html | 12 + .../node/public/map/thumbnail-styles.html | 256 ++++++++++++++++++ mapnik-server/src/main/node/routes.js | 3 +- 3 files changed, 270 insertions(+), 1 deletion(-) create mode 100644 mapnik-server/src/main/node/public/map/thumbnail-styles.html diff --git a/mapnik-server/src/main/node/public/map/demo.html b/mapnik-server/src/main/node/public/map/demo.html index ef0b3d6a..81b59224 100644 --- a/mapnik-server/src/main/node/public/map/demo.html +++ b/mapnik-server/src/main/node/public/map/demo.html @@ -301,6 +301,18 @@

Style overview

+
  • +

    Thumbnail styles

    +

    Suitable for very small maps

    + +
    + +
    +
    +
  • Technical debugging

    diff --git a/mapnik-server/src/main/node/public/map/thumbnail-styles.html b/mapnik-server/src/main/node/public/map/thumbnail-styles.html new file mode 100644 index 00000000..26717cba --- /dev/null +++ b/mapnik-server/src/main/node/public/map/thumbnail-styles.html @@ -0,0 +1,256 @@ + + + + + + GBIF Occurrence Thumbnail Styles + + + + +
    + Global Biodiversity Information Facility +
    + +

    Occurrence Density Map Thumbnail Styles (raster)

    +

    + +

    +

    Thumbnail maps

    +

    Styles suitable for thumbnail images

    + + + + diff --git a/mapnik-server/src/main/node/routes.js b/mapnik-server/src/main/node/routes.js index 55949b45..48bdb304 100644 --- a/mapnik-server/src/main/node/routes.js +++ b/mapnik-server/src/main/node/routes.js @@ -45,7 +45,8 @@ var assetsHTML = [ '/map/legacy-style-debugging.html', '/map/pixel-style-debugging.html', '/map/style-debugging.html', - '/map/styles.html']; + '/map/styles.html', + '/map/thumbnail-styles.html']; function parseUrl(parsedRequest) { if (parsedRequest.pathname.endsWith(".png")) { From 20c3e7d2cbb64b83d8048edb9707af64b6f00be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20H=C3=B8fft?= <6759267+MortenHofft@users.noreply.github.com> Date: Tue, 14 May 2024 11:55:55 +0200 Subject: [PATCH 3/3] close #65 --- mapnik-server/src/main/node/server.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mapnik-server/src/main/node/server.js b/mapnik-server/src/main/node/server.js index 3b71262a..960364a3 100644 --- a/mapnik-server/src/main/node/server.js +++ b/mapnik-server/src/main/node/server.js @@ -52,7 +52,14 @@ function createServer(config) { console.log("Retrieved", results.length, "tiles, error", err); if (!err && results.length == 4) { writeHeaders(200, results[0].etag, res); - renderer(parameters, results.map(r => r.body), res); + try { + renderer(parameters, results.map(r => r.body), res); + } catch (e) { + // something went wrong + res.writeHead(500, {'Content-Type': 'image/png', 'Access-Control-Allow-Origin': '*', 'X-Error': e.message}); + res.end(fs.readFileSync('./public/map/500.png')); + console.log(e); + } } else { console.log("Error retrieving four vector tiles", err); res.writeHead(503, {'Content-Type': 'image/png', 'Access-Control-Allow-Origin': '*', 'X-Error': err.message});