How to use the mapnik.render function in mapnik

To help you get started, we’ve selected a few mapnik examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github mapnik / node-mapnik / test / render-composite.js View on Github external
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();
        });
    });
github mapnik / node-mapnik / test / render-composite.js View on Github external
it('should render blank transparent image', function(done) {
        var sources = [ {'name':'hello','image':new mapnik.Image(256,256) } ]
        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();
        });
    });
github mapnik / node-mapnik / test / render-composite.js View on Github external
        assert.throws(function() { mapnik.render('a'); });
        // almost correct but image is invalid
github mapnik / node-mapnik / test / render-composite.js View on Github external
        assert.throws(function() { mapnik.render(0,0,0,new mapnik.Map(256,256),{},[],{},function() {}); });
        // almost correct but sources array is empty
github mapnik / node-mapnik / test / render-composite.js View on Github external
// 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 image
            // NOTE: order of sources does not matter, what matters is the order
            // of the layers in the mapnik.Map (which must match sources by name)
            // EXCEPT if multiple sources provide data for the same layer name - in this
            // case they are currently both rendered in the order of the sources array
            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 = 0;
            var x = 0;
            var y = 0;
            mapnik.render(z,x,y,map_composite,new mapnik.Image(256,256),sources,opts,function(err,im) {
                if (err) throw err;
                var actual = './test/data/render-composite/composite-actual.png';
                var expected = actual.replace('actual','expected');
                im.save(actual);
                assert.equal(fs.readFileSync(actual).length,
                             fs.readFileSync(expected).length);
                done();
            });
        });
    });
github mapnik / node-mapnik / test / render-composite.js View on Github external
// 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));
                assert.equal(fs.readFileSync(actual).length,
                             fs.readFileSync(expected).length);
                done();
            });
        });
    });
github mapnik / node-mapnik / test / render-composite.js View on Github external
        assert.throws(function() { mapnik.render(0,0,0,new mapnik.Map(256,256),new mapnik.Image(256,256),['foo'],{},function() {}); });
    });