Display filesizes of the mbtiles

This commit is contained in:
Petr Sloup 2016-05-04 13:07:09 +02:00
parent 10caaa1e8b
commit 5d940066d9
3 changed files with 18 additions and 4 deletions

View file

@ -47,7 +47,7 @@
<div class="sample-img"></div> <div class="sample-img"></div>
{{/if}} {{/if}}
<h3>{{name}}</h3> <h3>{{name}}</h3>
<p>Id: {{@key}} | {{#is_vector}}Vector{{/is_vector}}{{^is_vector}}Raster{{/is_vector}} data | <a href="/data/{{@key}}.json">TileJSON</a></p> <p>Id: {{@key}} |{{#if formatted_filesize}} {{formatted_filesize}} |{{/if}} {{#is_vector}}Vector{{/is_vector}}{{^is_vector}}Raster{{/is_vector}} data | <a href="/data/{{@key}}.json">TileJSON</a></p>
{{#is_vector}} {{#is_vector}}
<a class="btn" href="/data/{{@key}}/{{viewer_hash}}">X-Ray viewer</a> <a class="btn" href="/data/{{@key}}/{{viewer_hash}}">X-Ray viewer</a>
{{/is_vector}} {{/is_vector}}

View file

@ -1,6 +1,7 @@
'use strict'; 'use strict';
var crypto = require('crypto'), var crypto = require('crypto'),
fs = require('fs'),
path = require('path'); path = require('path');
var clone = require('clone'), var clone = require('clone'),
@ -12,15 +13,14 @@ var utils = require('./utils');
module.exports = function(options, repo, params, id) { module.exports = function(options, repo, params, id) {
var app = express().disable('x-powered-by'); var app = express().disable('x-powered-by');
var mbtilesFile = params.mbtiles; var mbtilesFile = path.join(options.paths.mbtiles, params.mbtiles);
var tileJSON = { var tileJSON = {
'tiles': params.domains || options.domains 'tiles': params.domains || options.domains
}; };
repo[id] = tileJSON; repo[id] = tileJSON;
var source = new mbtiles(path.join(options.paths.mbtiles, mbtilesFile), var source = new mbtiles(mbtilesFile, function(err) {
function(err) {
source.getInfo(function(err, info) { source.getInfo(function(err, info) {
tileJSON['name'] = id; tileJSON['name'] = id;
tileJSON['format'] = 'pbf'; tileJSON['format'] = 'pbf';
@ -29,6 +29,7 @@ module.exports = function(options, repo, params, id) {
tileJSON['tilejson'] = '2.0.0'; tileJSON['tilejson'] = '2.0.0';
tileJSON['basename'] = id; tileJSON['basename'] = id;
tileJSON['filesize'] = fs.statSync(mbtilesFile)['size'];
Object.assign(tileJSON, params.tilejson || {}); Object.assign(tileJSON, params.tilejson || {});
utils.fixTileJSONCenter(tileJSON); utils.fixTileJSONCenter(tileJSON);

View file

@ -214,6 +214,19 @@ module.exports = function(opts, callback) {
Math.floor(centerPx[1] / 256) + '.' + data_.format; 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 { return {
styles: styles, styles: styles,