GithubHelp home page GithubHelp logo

missinglink / osm-pbf-parser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from astro/osm-pbf-parser

0.0 3.0 0.0 381 KB

streaming open street maps protocol buffer parser

License: Other

JavaScript 97.32% Shell 2.68%

osm-pbf-parser's Introduction

osm-pbf-parser

streaming open street maps protocol buffer parser

build status

example

First grab a pbf torrent from http://osm-torrent.torres.voyager.hr/files/rss.xml or from http://download.geofabrik.de/

var fs = require('fs');
var through = require('through2');
var parseOSM = require('osm-pbf-parser');

var osm = parseOSM();
fs.createReadStream(process.argv[2])
    .pipe(osm)
    .pipe(through.obj(function (items, enc, next) {
        items.forEach(function (item) {
            console.log('item=', item);
        });
        next();
    }))
;

Then you can parse the results:

$ node parser osm.pbf | head -n15
item= {
  type: 'node',
  id: 122321,
  lat: 53.527972600000005,
  lon: 10.0241143,
  tags: {},
  info: {
     version: 9,
     id: 122321,
     timestamp: 1329691614000,
     changeset: 10735897,
     uid: 349191,
     user: 'glühwürmchen'
  }
}
item= {
  type: 'way',
  id: 108,
  tags: {
     created_by: 'Potlatch 0.8',
     highway: 'living_street',
     name: 'Kitzbühler Straße',
     postal_code: '01217' },
  refs: [ 442752, 231712390, 442754 ],
  info: {
     version: 5,
     timestamp: 1227877069000,
     changeset: 805472,
     uid: 42123,
     user: 'Ropino'
  }
}
item= {
  type: 'relation',
  id: 3030,
  tags: { layer: '1', type: 'bridge' },
  members: [
     { type: 'way', id: 12156789, role: 'across' },
     { type: 'way', id: 12156793, role: 'under' },
     { type: 'way', id: 34235338, role: '' }
  ],
  info: {
     version: 3,
     timestamp: 1323359077000,
     changeset: 10066052,
     uid: 75154,
     user: 'RWR'
  }
}

methods

var parseOSM = require('osm-pbf-parser')

var stream = parseOSM()

Return a transform parser stream that takes a binary OSM protocol buffer stream as input and produces parsed objectMode rows as output.

rows

Each row from the output stream has a row.type.

parallel processing

The module exposes BlobParser and BlobEncoder so that you distribute binary work units for parsing. See the pstats example.

install

With npm do:

npm install osm-pbf-parser

license

MIT

osm-pbf-parser's People

Contributors

astro avatar missinglink avatar

Watchers

 avatar  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.