openstreetmap-stream

0.1.0 • Public • Published

Installation

$ npm install openstreetmap-stream

NPM

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

Usage

You can extract the openstreetmap data from a file stream:

var osm = require('openstreetmap-stream');
 
// wget https://s3.amazonaws.com/metro-extracts.mapzen.com/auckland_new-zealand.osm.pbf
osm.createReadStream( 'auckland.osm.pbf' )
  .pipe( osm.stringify )
  .pipe( process.stdout );

Roll your own

The easiest way to get started writing your own pipes is to use through2; just make sure you call next().

var osm = require('openstreetmap-stream'),
    through = require('through2');
 
// wget https://s3.amazonaws.com/metro-extracts.mapzen.com/auckland_new-zealand.osm.pbf
osm.createReadStream( 'auckland.osm.pbf' )
  .pipe( through.obj( function( data, enc, next ){
    console.log( data.type, data.id, data.lat, data.lon );
    next();
  }));
node 241968426 -16.8675316 178.8918084
node 241968427 -16.8680169 178.8950226
node 241968428 -16.8682792 178.8944902
node 241968430 -16.8678736 178.8966257

Schema

Nodes:

{
  "type": "node",
  "id": "241956126",
  "lat": -16.2484711,
  "lon": 179.5422587,
  "tags": {
    "created_by": "JOSM"
  },
  "info": {
    "version": 2,
    "timestamp": 1204332911000,
    "changeset": 237950,
    "uid": "8834",
    "user": "Jocelyn"
  }
}

Ways:

{
  "type": "way",
  "id": "22572593",
  "tags": {
    "source": "PGS",
    "natural": "coastline",
    "created_by": "JOSM"
  },
  "info": {
    "version": 1,
    "timestamp": 1201026717000,
    "changeset": 680785,
    "uid": "10927",
    "user": "Skywave"
  },
  "refs": [
    "241979960",
    "241979970",
    "241979971",
    "241979972",
    "241979973",
    "241979959",
    "241979960"
  ]
}

Advanced Usage

You can extract the openstreetmap data from an existing file stream:

var osm = require('openstreetmap-stream'),
    fs = require('fs');
 
fs.createReadStream( './auckland_new-zealand.osm.pbf' )
  .pipe( osm.parser() )
  .pipe( osm.stringify )
  .pipe( process.stdout );

You can also extract the data from stdin using a unix pipe:

var osm = require('openstreetmap-stream');
 
process.stdin
  .pipe( osm.parser() )
  .pipe( osm.stringify )
  .pipe( process.stdout );
#!/bin/bash 
cat auckland_new-zealand.osm.pbf | node stdin.js;

NPM Module

The openstreetmap-stream npm module can be found here:

https://npmjs.org/package/openstreetmap-stream

Contributing

Please fork and pull request against upstream master on a feature branch.

Pretty please; provide unit tests and script fixtures in the test directory.

Running Unit Tests

$ npm test

Continuous Integration

Travis tests every release against node version 0.10

Build Status

Package Sidebar

Install

npm i openstreetmap-stream

Weekly Downloads

0

Version

0.1.0

License

MIT

Last publish

Collaborators

  • missinglink
  • dianashk
  • julian_mapzen
  • pelias