Routing
Routing (in some countries called navigation) services help people get from one place to another. OpenStreetMap data includes information for routing by many modes including car, foot, bicycle and horse. There are many offline, embedded and web-based routing services using OpenStreetMap data. There is also software available for creating new applications and more data is being added to OpenStreetMap to allowed better routing. A number of mailing lists are available.
Contents |
Mailing lists
The following mailing lists are relevant to routing
- osm-routing 'Discussion about Routing with vector Data. Especially concerning OSM Data'
- osm-accessibility For all kinds of disabilities this concerns the proposal and use of tags that are of special interest for disabled persons. Special maps shall be created with this data.
Software
Routing software
Get an Overview or browse the Software page
Mobile Devices
for other see Software#Mobile Devices
Desktop and server software
Java:
- The Traveling salesman routing-application contains the osmNavigation -library for doing all the basics except a user-interface. All important parts can be exchanged via plugins.
- OpenTripPlanner site is a multi-modal trip planner supporting OSM data.
C/C++
C#
- IMORTIS(Intermodal Transport Routing Informations-System) is an approach to route/optimise transport routes via different vehicles using a optimzed A* Algorithm
- OsmSharp Library for routing and transportation optimisation problems.
Scala
- osm_routing super-simple plain Dijkstras
Libraries/Development-Tools
Libraries focused on OSM Routing can be found at Develop/Frameworks. Here some general libs:
- DGLib - ([1]) Directed Graph Library used by Grass's vector network tools (shortest path, traveling salesman, isodistances, Steiner trees; also Addons)
- Graphserver ([2]) is a webservice providing shortest-path itineraries on TIGER/line road maps, and public transport data in the General Transit Feed Specification (GTFS) format
- pgRouting - ([3]) PostGIS-based routing engine. Special tool osm2pgrouting for importing OSM data to internal graph structure. Works directly on top of SQL database tables.
- SQLite.
- Libosmscout offers simple, high-level interfaces to offline rendering and routing functionalities based on OpenStreetMap data
Protocols:
- The default-protocol is the API v0.6 spoken by the main servers. If can contain all data there is in OSM. Get Planet.osm dump.
- There is also a compressed but limited OSM Mobile Binary Protocol.
Tagging for routing
First of all you should be familiar with the Map Features used. Then please see OSM_tags_for_routing to understand about the tags you need to be familar with to do routing.
Quality of data
You need to make sure that there is the correct connectivity between all the ways. In Potlatch when you select a way you will see all the nodes highlighted. If a node is big and square then it is connected to another way. To improve the quality of OSM data you can use the reports generated by WayCheck.Speed data
Please first see OSM_tags_for_routing to understand about the tags you need to be familar with to do routing.
Average speed
Speedcollector - trivial service to collect real-world speeds and give estimations.
Average speed per way - thoughts about deriving average speed values for ways from stored tracks
Global Statistical Speed Matrix - another idea how to extract valuable speed information from NMEA/GPX tracks, how to store them efficently in a database to make collected data useful for routing purposes
Maximum speed
Maximum permitted speed per way - collection of the maximal allowed speeds per country and vehicle-type.
Highway-type
The order of values for the highway-tag ordered by assumed speed is:
- motorway
- motorway_Link
- trunk
- trunk_Link
- primary
- primary_Link
- secondary
- tertiary
- residental
- service
- track
Lanes
The number of lanes of a highway is directly tagged in OSM and has a major influence on the average speed(fastest route) and fuel-consumption(most efficient route).
Sinuosity
In some studies about the accessibility [4] develop models that assume a certain speed of travel depending on the degree of sinuosity of the track and certain characteristics of this one. By means of the sinuosity index (observed line distance/expected line distance ) for every section it is possible to obtain a speed estimated according to the degree of winding of the road and type of route. The model is more precise if the excessively large arcs are avoided provided that a long curve can be equal to many small curves along a way, giving similar values of sinuosity for both routes. Some countries use these values to divide sections of roads and put speed limits (but this is not usual).
On the other hand, geographical approaches like that of the Syntax of the Space presuppose that, in urban environments, pedestrians and drivers are influenced at the moment of choosing theirs paths for the visibility of the route. In this respect a pedestrian who moves, for example, from the point A to the point B will select principally wide and rectilinear streets, squares or avenues with a wide visual field, avoiding crossed by winding and narrow streets, even when the latter route is somewhat shorter.
Inclines
Same as curves, inclines may decrease the speed of your vehicle.
Highway-condition
Other factors, in our case more difficult to measure, which determine the average speed are the width of pavement, condition of the network, Levels of Service (LOS), minimal radius curve, banked turns, visibility based on curves and gradients, etc.
In OpenStreetMap this model can be interesting for those routes where there are no data on speeds (for example: highway=unclassified).
See also
- OSM tags for routing - What data is stored in OpenStreetMap that you can use when routing?
- Rollstuhlfahrer-Routing - German project for wheelchair routing
- Routing problems - Are there any problems that can't be solved using least-cost routing? Do we have any suggestions for *Routing profiles - Which categories of people want to generate routes, and what are their specific needs? What weights should we use when a 'horse who's scared of traffic lights but likes walking in the forest' asks for a route? How do we choose the best route for a cyclist with slick tires and no lights at night?
- Sample driving instructions
- TIGER fixup - Fixing routing in the U.S. Starting with basic interstate routes: TIGER fixup/250 cities
solving those problems?
- Train routing- How can we do routing on public transport networks, and other scheduled services?
- LoroDux - Pedestrian routing for mobile devices for the blind
- Taxi to... - a funny approach to long-distance routing comparison
- Video: Google Tech Talk - Peter Sanders - Fast Route Planning