Skip to content

calvinmetcalf/node-mapnik

 
 

Repository files navigation

node-mapnik

Bindings to Mapnik for node.

Build Status

Example

Render a map synchronously:

var mapnik = require('mapnik');

var map = new mapnik.Map(256, 256);
map.loadSync('./examples/stylesheet.xml');
map.zoomAll();
map.renderFileSync('map.png');

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;
    map.zoomAll();
    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 https://github.com/mapnik/node-mapnik-sample-code

Depends

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

Installation

Install Mapnik using the instructions at: https://github.com/mapnik/mapnik/wiki/Mapnik-Installation

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://github.com/mapnik/node-mapnik.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

Tests

To run the tests do:

npm install mocha sphericalmercator
npm test

License

BSD, see LICENSE.txt

Packages

No packages published

Languages

  • C++ 78.6%
  • JavaScript 20.1%
  • Python 1.1%
  • Shell 0.2%