$ npm install osmium-stream
Note: you will need node
and npm
installed first.
The easiest way to install node.js
is with nave.sh by executing [sudo] ./nave.sh usemain stable
You can extract the openstreetmap data from a file stream:
var osmium = require('osmium'),
through = require('through2'),
OsmiumStream = require('osmium-stream');
var file = new osmium.File( 'https://s3.amazonaws.com/metro-extracts.mapzen.com/london_england.osm.pbf', 'pbf' );
var stream = new OsmiumStream( new osmium.Reader( file ) );
stream.pipe( through.obj( function( object, enc, next ){
console.log( JSON.stringify( object, null, 2 ) );
next();
}));
Refer to https://github.com/osmcode/node-osmium for more options, such as reading input from stdin or reading xml documents.
- flood control with backpressure
- does not block the eventloop
- full pipe() support, works with any other node stream
The osmium-stream
npm module can be found here:
https://npmjs.org/package/osmium-stream
Please fork and pull request against upstream master on a feature branch.
Pretty please; provide unit tests and script fixtures in the test
directory.
$ npm test
Travis tests every release against node version 0.10