Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

osm2geojson-lite

Package Overview
Dependencies
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

osm2geojson-lite

a lightweight yet faster osm (either in xml or in json formats) to geojson convertor - 4x faster than xmldom + osmtogeojson in most situations - implemented in pure JavaScript without any 3rd party dependency

  • 0.8.7
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

osm2geojson-lite

A lightweight (not as lightweight as xml2geojson though) yet faster convertor for OSM data whatever in XML or JSON formats to GeoJSON - much faster (the more complex the data source is, the more performance advantages it posesses) than osmtogeojson in most situations - implemented in pure JavaScript without any 3rd party dependency.

History

An internal function inside query-geo-boundary → stripped out to handle OSM XML only xml2geojson-lite → this library that supports both OSM XML and OSM/Overpass JSON

Usage

As a Node.JS Library

Installation:

$ npm install osm2geojson-lite

Usage:

    const osm2geojson = require('osm2geojson-lite');
    let geojson = osm2geojson(osm);

In the Browser

    <script src='your/path/to/osm2geojson-lite.js'/>
    let geojson = osm2geojson(osm, opts);

API

osm2geojson(osm, opts)

Converts OSM data (XML/JSON) to GeoJSON.

  • osm: the OSM XML data in String, or OSM/Overpass JSON as object or in String
  • opts?: optional, the options object, right now supports below properties/fields:
    • completeFeature/allFeatures: the default value is false. When it's set to true, the returned geojson will include all elements that meet the specified conditions in FeatureCollection format; otherwise, only the bare geometry of the first relation element will be returned.
    • renderTagged: the default value is false. When it's set to true, the returned geojson will include all elements with tags (i.e., tagged) until suppressWay changes its behavior a bit; otherwise only the unreferenced ones get returned.
    • suppressWay/excludeWay: the default value is true. When it's set to true, the returned FeatureCollection will exclude any referenced ways even though they are tagged; otherwise the features of all tagged way will be included, too.

Benchmark

Performance vs. osmtogeojson (with xmldom for XML processing)

  1. Workloads include the boundary XML and JSON of 4 administrive areas (zhucheng, hebei, tokyodo, usa)
  2. Call each conversion for 100 rounds to mitigate the impacts of GC and other factors
  3. For each script, run as many as times seperately and then calculate the average cost time (ACT for short)
  4. The speedup# listed in blow table are coarse lowest value of dividing the ACT of osmtogeojson by the one of this library
$ cd bench
$ node o2gl-bench.js
$ node otg-bench.js

1. XML
-----------------------------------------------------
|  zhucheng  |   hebei    |  tokyodo   |    usa     |
+------------+------------+------------+------------+
|  >2.5x     |  >4.0x     |  >3.0x     |  >3.0x     |
-----------------------------------------------------
2. Overpass JSON
-----------------------------------------------------
|  zhucheng  |   hebei    |  tokyodo   |    usa     |
+------------+------------+------------+------------+
|  >2.5x     |  >11.0x    |  >7.0x     |  >5.0x     |
-----------------------------------------------------

Node.JS version

ES5/ES6 features

Dependencies

  • No 3rd party dependency

License

Written in 2018 by tibetty xihua.duan@gmail.com

Keywords

FAQs

Package last updated on 31 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc