Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
90 lines (58 sloc) 1.96 KB


Bindings to Mapnik for node.

Build Status


Render a map synchronously:

var mapnik = require('mapnik');

var map = new mapnik.Map(256, 256);

Render a map asynchronously:

var mapnik = require('mapnik');
var fs = require('fs');

var map = new mapnik.Map(256, 256);
map.load('./examples/stylesheet.xml', function(err,map) {
    if (err) throw err;
    var im = new mapnik.Image(256, 256);
    map.render(im, function(err,im) {
      if (err) throw err;
      im.encode('png', function(err,buffer) {
          if (err) throw err;
          fs.writeFile('map.png',buffer, function(err) {
              if (err) throw err;
              console.log('saved map image to map.png');

For more sample code see


  • Node >= v0.6
  • Mapnik >= v2.2.x
  • Protobuf >= 2.3.0 (protoc and libprotobuf-lite)


Install Mapnik using the instructions at:

Confirm that the mapnik-config program is available and on your $PATH.

Install via npm:

npm install mapnik

Install locally for development:

git clone git://
cd node-mapnik
npm install

The above will install node-mapnik locally in a node_modules folder. To install globally do:

npm install -g mapnik

Using node-mapnik from your node app

To require node-mapnik as a dependency of another package put in your package.json:

"dependencies"  : { "mapnik":"*" } // replace * with a given semver version string


To run the tests do:

npm install mocha sphericalmercator
npm test


BSD, see LICENSE.txt

Jump to Line
Something went wrong with that request. Please try again.