From 1104bf8a57dd28344aa2f826cdd57202a5fe8764 Mon Sep 17 00:00:00 2001 From: Petr Sloup Date: Wed, 29 Jun 2016 15:08:56 +0200 Subject: [PATCH] Add links to WMTS services from index.html --- public/templates/index.tmpl | 10 +++++++++- src/server.js | 23 +++++++++++++++++------ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/public/templates/index.tmpl b/public/templates/index.tmpl index df2456c..29ef1a8 100644 --- a/public/templates/index.tmpl +++ b/public/templates/index.tmpl @@ -21,6 +21,9 @@

Id: {{@key}} {{#if serving_rendered}} | TileJSON + {{#if wmts_link}} + | WMTS Service + {{/if}} {{/if}}

{{#if serving_data}} @@ -47,7 +50,12 @@
{{/if}}

{{name}}

-

Id: {{@key}} |{{#if formatted_filesize}} {{formatted_filesize}} |{{/if}} {{#is_vector}}Vector{{/is_vector}}{{^is_vector}}Raster{{/is_vector}} data | TileJSON

+

Id: {{@key}} |{{#if formatted_filesize}} {{formatted_filesize}} |{{/if}} {{#is_vector}}Vector{{/is_vector}}{{^is_vector}}Raster{{/is_vector}} data + | TileJSON + {{#if wmts_link}} + | WMTS Service + {{/if}} +

{{#is_vector}} X-Ray view {{/is_vector}} diff --git a/src/server.js b/src/server.js index f7b27bf..fa0259b 100644 --- a/src/server.js +++ b/src/server.js @@ -167,7 +167,7 @@ module.exports = function(opts, callback) { app.use(path, function(req, res, next) { var data = {}; if (dataGetter) { - data = dataGetter(req.params); + data = dataGetter(req); if (!data) { return res.status(404).send('Not found'); } @@ -179,7 +179,7 @@ module.exports = function(opts, callback) { }); }; - serveTemplate('/$', 'index', function() { + serveTemplate('/$', 'index', function(req) { var styles = clone(config.styles || {}); Object.keys(styles).forEach(function(id) { var style = styles[id]; @@ -198,6 +198,12 @@ module.exports = function(opts, callback) { Math.floor(centerPx[0] / 256) + '/' + Math.floor(centerPx[1] / 256) + '.png'; } + + var query = req.query.key ? ('?key=' + req.query.key) : ''; + style.wmts_link = 'https://wmts.maptiler.com/' + + new Buffer(req.protocol + '://' + req.headers.host + + '/styles/' + id + 'rendered.json' + query).toString('base64') + + '/wmts'; } }); var data = clone(serving.data || {}); @@ -217,6 +223,11 @@ module.exports = function(opts, callback) { Math.floor(centerPx[0] / 256) + '/' + Math.floor(centerPx[1] / 256) + '.' + data_.format; } + + var query = req.query.key ? ('?key=' + req.query.key) : ''; + data_.wmts_link = 'https://wmts.maptiler.com/' + + new Buffer(req.protocol + '://' + req.headers.host + + '/data/' + id + '.json' + query).toString('base64') + '/wmts'; } if (data_.filesize) { var suffix = 'kB'; @@ -238,8 +249,8 @@ module.exports = function(opts, callback) { }; }); - serveTemplate('/styles/:id/$', 'viewer', function(params) { - var id = params.id; + serveTemplate('/styles/:id/$', 'viewer', function(req) { + var id = req.params.id; var style = clone((config.styles || {})[id]); if (!style) { return null; @@ -257,8 +268,8 @@ module.exports = function(opts, callback) { }); */ - serveTemplate('/data/:id/$', 'data', function(params) { - var id = params.id; + serveTemplate('/data/:id/$', 'data', function(req) { + var id = req.params.id; var data = clone(serving.data[id]); if (!data) { return null;