Mapnik backend for tilelive


Renderer backend for tilelive.js that uses node-mapnik to render tiles and grids from a Mapnik XML file. tilelive-mapnik implements the Tilesource API.

npm install tilelive-mapnik

Though tilelive is not a dependency of tilelive-mapnik you will want to install it to actually make use of tilelive-mapnik through a reasonable API.

var tilelive = require('tilelive');
tilelive.load('mapnik:///path/to/file.xml', function(errsource) {
    if (err) throw err;
    // Interface is in XYZ/Google coordinates. 
    // Use `y = (1 << z) - 1 - y` to flip TMS coordinates. 
    source.getTile(0, 0, 0, function(errtileheaders) {
        // `err` is an error object when generation failed, otherwise null. 
        // `tile` contains the compressed image file as a Buffer 
        // `headers` is a hash with HTTP headers for the image. 
    // The `.getGrid` is implemented accordingly. 

Note that grid generation will only work when there's metadata inside a <Parameters> object in the Mapnik XML.

The key fields are interactivity_layer and interactivity_fields. See an example in the tests. These Parameters are normally added by the application that creates the XML, in this case CartoCSS