diff --git a/public/templates/index.tmpl b/public/templates/index.tmpl index 054c2ee..040c3d9 100644 --- a/public/templates/index.tmpl +++ b/public/templates/index.tmpl @@ -47,7 +47,7 @@
{{/if}}

{{name}}

-

Id: {{@key}} | {{#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

{{#is_vector}} X-Ray viewer {{/is_vector}} diff --git a/src/serve_data.js b/src/serve_data.js index 561f90c..96f0f3b 100644 --- a/src/serve_data.js +++ b/src/serve_data.js @@ -1,6 +1,7 @@ 'use strict'; var crypto = require('crypto'), + fs = require('fs'), path = require('path'); var clone = require('clone'), @@ -12,15 +13,14 @@ var utils = require('./utils'); module.exports = function(options, repo, params, id) { var app = express().disable('x-powered-by'); - var mbtilesFile = params.mbtiles; + var mbtilesFile = path.join(options.paths.mbtiles, params.mbtiles); var tileJSON = { 'tiles': params.domains || options.domains }; repo[id] = tileJSON; - var source = new mbtiles(path.join(options.paths.mbtiles, mbtilesFile), - function(err) { + var source = new mbtiles(mbtilesFile, function(err) { source.getInfo(function(err, info) { tileJSON['name'] = id; tileJSON['format'] = 'pbf'; @@ -29,6 +29,7 @@ module.exports = function(options, repo, params, id) { tileJSON['tilejson'] = '2.0.0'; tileJSON['basename'] = id; + tileJSON['filesize'] = fs.statSync(mbtilesFile)['size']; Object.assign(tileJSON, params.tilejson || {}); utils.fixTileJSONCenter(tileJSON); diff --git a/src/server.js b/src/server.js index 0e6727c..f1217d6 100644 --- a/src/server.js +++ b/src/server.js @@ -214,6 +214,19 @@ module.exports = function(opts, callback) { Math.floor(centerPx[1] / 256) + '.' + data_.format; } } + if (data_.filesize) { + var suffix = 'kB'; + var size = parseInt(data_.filesize, 10) / 1024; + if (size > 1024) { + suffix = 'MB'; + size /= 1024; + } + if (size > 1024) { + suffix = 'GB'; + size /= 1024; + } + data_.formatted_filesize = size.toFixed(2) + ' ' + suffix; + } }); return { styles: styles,