Skip to content

Commit

Permalink
factor out BitmapTilerequest.renderCallback()
Browse files Browse the repository at this point in the history
  • Loading branch information
DerDakon committed Mar 24, 2016
1 parent 4a56fe9 commit dc4ba09
Showing 1 changed file with 47 additions and 43 deletions.
90 changes: 47 additions & 43 deletions bitmaptilerequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,51 @@ BitmapTilerequest = function(self)

BitmapTilerequest.prototype =
{
// save the rendered image to disk and send it to the client
renderCallback: function(err, image)
{
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();

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;
});
});
});
},

// serves a bitmap tile
getTile: function()
{
Expand Down Expand Up @@ -117,56 +162,15 @@ BitmapTilerequest.prototype =
self.abortRequest('Vectortile could not be created. Aborting.');
return;
}

self.tile.debug('Vector tile created successfully, saving vector tile...');
self.tile.saveVectorData(function(err)
{
if (err)
self.tile.warn('Vector tile could not be saved.');

self.tile.debug('Rendering bitmap tile with style '+self.tile.style);
self.tile.render(function(err, image)
{
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();

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.tile.render(renderCallback);
});
});
}
Expand Down

0 comments on commit dc4ba09

Please sign in to comment.