Skip to content

Commit

Permalink
Various bugfixes, refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
rurseekatze committed Jun 18, 2016
1 parent 7859253 commit 28b397a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 50 deletions.
60 changes: 12 additions & 48 deletions bitmaptilerequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,14 @@ BitmapTilerequest.prototype =
// save the rendered image to disk and send it to the client
renderCallback: function(err, image)
{
var self = this;

if (err)
self.tile.debug('Vectortile was empty.');

self.tile.saveBitmapData(image, function(err)
{
if (err)
if (err || image == null)
{
self.response.writeHead(500, {'Content-Type': 'text/plain'});
self.response.end();
Expand Down Expand Up @@ -169,15 +172,18 @@ BitmapTilerequest.prototype =
if (err)
self.tile.warn('Vector tile could not be saved.');

if (self.data.features.length === 0)
if (data.features.length === 0)
{
self.tile.debug('Vector tile without features, serving empty PNG tile for style ' + self.tile.style);
renderCallback(false, null);
self.renderCallback(true, null);
}
else
{
self.tile.debug('Rendering bitmap tile with style ' + self.tile.style);
self.tile.render(renderCallback);
self.tile.render(function()
{
self.renderCallback
});
}
});
});
Expand All @@ -191,51 +197,9 @@ BitmapTilerequest.prototype =
self.queue.add(self.tile);

self.tile.debug('Rendering bitmap tile with style '+self.tile.style);
self.tile.render(function(err, image)
self.tile.render(function()
{
if (err)
self.tile.debug('Vectortile was empty.');
self.tile.saveBitmapData(image, function(err)
{
if (err)
{
self.response.writeHead(500, {'Content-Type': 'text/plain'});
self.response.end();
self.tile.debug('Empty bitmap tile was responded to the request.');
self.tile.debug('Finished request.');
return;
}

self.tile.getModifyTime(function(err, mtime)
{
var header = self.getHeader();

if (!err)
header['Last-Modified'] = mtime.toUTCString();

if (expired)
header['Cache-Control'] = 'max-age=0';

self.tile.trace('Responding bitmap data...');
var stream = image.createPNGStream();
self.response.writeHead(200, header);

// write PNG data stream
stream.on('data', function(data)
{
self.response.write(data);
});

// PNG data stream ended
stream.on('end', function()
{
self.response.end();
self.tile.debug('Bitmap tile was responded to the request.');
self.tile.debug('Finished request.');
return;
});
});
});
self.renderCallback
});
});
}
Expand Down
2 changes: 1 addition & 1 deletion queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Tilequeue.prototype =
{
if (err)
{
tile.info('Vectortile could not be created. Aborting.');
tile.info('Vector tile could not be created. Aborting.');
tile.destroy();
tile = null;
self.eventEmitter.emit('tileFinished');
Expand Down
2 changes: 1 addition & 1 deletion tile.js
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ Tile.prototype =

return process.nextTick(function()
{
callback(true);
callback(err);
});
});
}
Expand Down

0 comments on commit 28b397a

Please sign in to comment.