Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('should render semi transparent green image', function(done) {
var mask = new mapnik.Image(256,256);
var semi_green = new mapnik.Color('rgba(0,255,0,.5)');
mask.background = semi_green;
mask.premultiply();
var sources = [ {'name':'hello','image':mask } ]
var map = new mapnik.Map(256,256);
map.add_layer(new mapnik.Layer('hello'));
mapnik.render(0,0,0,map,new mapnik.Image(256,256),sources,{},function(err,im) {
if (err) throw err;
assert.ok(im instanceof mapnik.Image);
assert.equal(im.width(),256);
assert.equal(im.height(),256);
assert.equal(im.painted(),false); // true?
var view = im.view(0,0,256,256);
assert.equal(view.isSolid(),true);
assert.equal(view.getPixel(0,0).toString(),semi_green);
done();
});
mapnik.render(0,0,0,new mapnik.Map(256,256),new mapnik.Image(256,256),sources,{},function(err,im) {
if (err) throw err;
assert.ok(im instanceof mapnik.Image);
assert.equal(im.width(),256);
assert.equal(im.height(),256);
assert.equal(im.painted(),false); // true?
var view = im.view(0,0,256,256);
assert.equal(view.isSolid(),true);
assert.equal(view.getPixel(0,0).toString(),new mapnik.Color(0,0,0,0).toString());
done();
});
});
if (err) throw err;
// ensure the vtile contains one layer named 'global'
assert.deepEqual(vtile_global.names(),['global']);
// now load a vector tile for some deeper zoom level
// in this case we grab a tile for japan from the tests
var japan_vtile = new mapnik.VectorTile(5,28,12);
japan_vtile.setData(fs.readFileSync("./test/data/vector_tile/tile3.vector.pbf"));
// ensure the vtile contains one layer named 'world'
assert.deepEqual(japan_vtile.names(),['world']);
// now load up a raster image to composite into the final rendered image
// 128 is used here just for testing purposed - you will want to stick to 256 px images
var raster = new mapnik.Image(128,128);
// semi transparent blue
raster.background = new mapnik.Color('rgba(0,0,255,.5)');
// image has alpha so it needs to be premultiplied before passing into renderer
raster.premultiply();
// okay, sweet, now render these various sources into a new vector tile
var sources = [vtile_global,{'name':'raster','image':raster},japan_vtile];
var opts = {scale:1.0,buffer_size:256};
var map_composite = new mapnik.Map(256,256);
map_composite.loadSync('./test/data/render-composite/composite.xml');
var z = 5;
var x = 28;
var y = 12;
mapnik.render(z,x,y,map_composite,new mapnik.VectorTile(z,x,y),sources,opts,function(err,v) {
if (err) throw err;
var actual = './test/data/render-composite/composite-actual.json';
var expected = actual.replace('actual','expected');
fs.writeFileSync(actual,JSON.stringify(v.toJSON(),null,1));
var mapnik = require('mapnik');
var http = require('http');
var path = require('path');
// Serve a blank tile. This can indicate the absolute fastest mapnik can return a tile
// and highlights zlib/inflate bottleneck (compare "png" format to "png8")
var port = 8000;
var im = new mapnik.Image(256, 256);
im.background = new mapnik.Color('steelblue');
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'image/png'});
im.encode('png8:z=1',function(err,buffer) {
res.end(buffer);
});
}).listen(port);
console.log('server running on port ' + port);
#!/usr/bin/env node
var mapnik = require('mapnik');
var http = require('http');
var path = require('path');
// Serve a blank tile. This can indicate the absolute fastest mapnik can return a tile
// and highlights zlib/inflate bottleneck (compare "png" format to "png8")
var port = 8000;
var im = new mapnik.Image(256, 256);
im.background = new mapnik.Color('steelblue');
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'image/png'});
im.encode('png8:z=1',function(err,buffer) {
res.end(buffer);
});
}).listen(port);
console.log('server running on port ' + port);