GithubHelp home page GithubHelp logo

imclab / node-mapnik Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mapnik/node-mapnik

0.0 2.0 0.0 7.09 MB

Bindings to mapnik for node.js

Home Page: https://github.com/mapnik/node-mapnik

License: BSD 3-Clause "New" or "Revised" License

node-mapnik's Introduction

node-mapnik

Bindings to Mapnik for node.

NPM

Build Status

Usage

Render a map from a stylesheet:

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

// register fonts and datasource plugins
mapnik.register_default_fonts();
mapnik.register_default_input_plugins();

var map = new mapnik.Map(256, 256);
map.load('./test/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');
          });
      });
    });
});

Convert a jpeg image to a png:

var mapnik = require('mapnik');
new mapnik.Image.open('input.jpg').save('output.png');

Convert a shapefile to GeoJSON:

var mapnik = require('mapnik');
mapnik.register_datasource(path.join(mapnik.settings.paths.input_plugins,'shape.input'));
var ds = new mapnik.Datasource({type:'shape',file:'test/data/world_merc.shp'});
var featureset = ds.featureset()
var geojson = {
  "type": "FeatureCollection",
  "features": [
  ]
}
var feat = featureset.next();
while (feat) {
    geojson.features.push(JSON.parse(feat.toJSON()));
    feat = featureset.next();
}
fs.writeFileSync("output.geojson",JSON.stringify(geojson,null,2));

For more sample code see the tests and sample code.

Depends

  • Node v0.10.x or v0.8.x

Installing

By default, binaries are provided for:

  • 64 bit OS X and 64 bit Linux
  • Node v0.8.x and v0.10.x

On those platforms no external dependencies are needed.

Just do:

npm install mapnik

However other platforms will fall back to a source compile: see Source Build for details.

Source Build

To build from source you need:

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

To build with OS X Mavericks you need to ensure the bindings link to libc++. An easy way to do this is to set:

export CXXFLAGS=-mmacosx-version-min=10.9

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.

Then run:

npm install mapnik --build-from-source

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 test

License

BSD, see LICENSE.txt

node-mapnik's People

Contributors

artemp avatar booo avatar calvinmetcalf avatar kkaefer avatar mithgol avatar mojodna avatar mscdex avatar rclark avatar rcoup avatar stefanklug avatar taketime avatar wilhelmberg avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.