a-b-street / osm2streets

Convert OSM to street networks with detailed geometry
https://a-b-street.github.io/osm2streets
Apache License 2.0
101 stars 9 forks source link

osm2streets

OpenStreetMap (OSM) has many details about streets, but the schema presents many challenges for rendering, routing, and analyzing done at the detail of lanes, especially in the presence of dual carriageways, separated cycletracks and footways, and complex intersections. osm2streets provides a simplified street network schema, a library transforming OSM data into this representation, and tools to render and work with the results.

Getting started

  1. Open StreetExplorer
  2. Select a test area from the left, then click Reimport
  3. Or navigate to anywhere in the world and press Import current view (change the driving side in Settings first)

Features

There are other planned features:

Some of these extra features may sound redundant with libraries like osmnx and existing OSM routers. osm2streets will support these features in a way that uses the lane-level detail and consolidated road representation, is compatible with user-made edits to the network, and can be deployed in a variety of environments (native, web, offline without running an external server).

Users

Using osm2streets in your projects

You can use osm2streets today with Leaflet, Mapbox, OpenLayers, or any other web map frameworks. The osm2streets Javascript API can render to GeoJSON.

Since the API isn't stable yet, please get in touch first.

Java bindings are also in progress, with Python and C++ planned.

Architecture

osm2streets architecture

The osm2streets library itself (Rust):

Bindings for other languages:

The StreetExplorer web app (Javascript, CSS using Leaflet):

Contributing

There's many opportunities to help out:

Check out the issues.

Further reading