From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — OpenRouteService
Deutsch English 日本語

OpenRouteService ( - short ORS) - Is much more than a website with a route service for cars, pedestrians and bicycles based on Open Standards and Open Geodata. Several Location Based Services (LBS) created from OSM data are available, developed by Pascal Neis. For example (Neis 2008):
  • Route Service
  • Geocoder/Reverse Geocoder
  • Directory Service
  • Accessibility Analysis Service
  • Emergency Route Service

General Information

ORS Coverage
Online since: April 2008
Developed by: Pascal Neis, further developed by Maxim Rylov, Enrico Steiger and others
Idea: Pascal Neis & Alexander Zipf
University of Heidelberg GIScience (Geoinformatics) Research Group ([1])
Currently supported Countries: Complete Europe, Asia, Africa and Australia (routing and geocoder)

Worldwide: Directory Service (POI-search) Thanks to Johannes Lauer

Supported Languages for RouteInstructions (Route Service): see OpenRouteService/Instructions
Routing algorithm OLS Route Service: Combination of ontraction Hierarchies and A* (A-Star)
new Website (beta version) on github[2] developed by: Carina Lannig, Oliver Roick and others
Data updates by: (NEW update mechanism developed and deployed (06/2014) Enrico Steiger, Maxim Rylov, Lukas Loos, Johannes Lauer

OSM graph database stats europe Date 05.07.2014
Number of edges after processing: 70.575.429
Number of original OSM ways: 34.419.984
Total length (in km): 13.084.106

05 06 ors roads.png

Report Feature Requests, General Feedback, Comments, Suggestions, Bugs on Talk:OpenRouteService or further questions via email to

What can you do on ORS? is much more than only a routing service: it uses a wide range of services based on OSM data that also could be used in other applications and scenarios. Currently the following services have been implemented within the frame of based on OSM data:

ORS Directory Service
  • The Directory Service is a service that provides access to an online directory to find the location of a specific or nearest place, product or service.
  • The Location Utility Service provides a Geocoder/Reverse Geocoder; the Geocoder transforms a description of a location, such as a place name, street address or postal code, into a normalized description of the location with a Point geometry.
ORS Route Service
  • The Route Service determines travel routes and navigation information according to diverse criteria. This has been realized for:
    • cars: fastest
    • cars: shortest
    • cars: for fastest and shortest additional option: no motorway
    • cars: use realtime traffic (TMC), for Northrhine-Westphalia and Bavaria
    • bicycles (MTB, race bike, safest route...)
    • pedestrian
    • further extensions (particular options for different types of bicycles etc.) are planned or in work
ORS Accessibility Analysis Service
  • The Accessibility Analysis Service (AAS) calculates a polygon representing the area that is reachable within a certain time distance based on a street network around a given location.
ORS Emergency Route Service
  • In the Emergency Route Service you can specify areas that will be avoided by your route.
  • ...

Components of ORS

ORS Components.png

Components of ORS from Neis (2008)

Used OSM Tags for Routing

Car Routing Pedestrian Routing Bicycle Routing
Key Value (km/h -> speed used in ORS) Key Value (km/h -> speed used in ORS) Key Value (km/h -> speed used in ORS)
highway motorway (110 km/h) & motorway_link (90 km/h), trunk (90 km/h) & trunk_link (70 km/h), primary (70 km/h) & primary_link (60 km/h), secondary (60 km/h) & secondary_link (50 km/h), tertiary (55 km/h) & tertiary_link (45 km /h), unclassified (50 km/h), residential (40km/h), living_street (10 km/h), service (30 km/h)* highway (trunk & trunk_link till october) primary & primary_link, secondary & secondary_link, tertiary & tertiary_link, unclassified, residential, living_street, service, track, pedestrian, cycleway*, footway, bridleway*, steps, path (on all ways 6 km/h) highway (trunk & trunk_link till october) primary & primary_link, secondary & secondary_link, tertiary & tertiary_link, unclassified, residential, living_street, service, track, cycleway, footway*, bridleway*, pedestrian*, path (on all ways 16 km/h)
access yes, no
motorcar yes, no foot yes, no bicycle yes, no
oneway yes, true, 1, no, false, -1 oneway yes, true, 1, no, false, -1
junction roundabout cycleway opposite, opposite_lane, opposite_track, track
route ferry route ferry route ferry
maxspeed (in work) only if the value is a number, e.g. '30'. '30 km/h' or similar are not supported! Further, only speeds between 5 and 130 km/h are used. mph will be transformed.
* if allowed

additional project on adding wheelchair routing:

it is also used for haiti emergency routing:


Please help to improve the Instructions and the translations!

Route Service Comparison Matrix

A comparison matrix is available at Routing/OnlineRouters#Route service comparison matrix

Evaluation of data fitness for routing

"The table gives an overview of hits, total number of calculated routes and the number of failed route requests due to errors in street network. The percentage of failed route requests compiled from server log files gives a first indication of OSM data quality for routing. The decreasing percentage of failed route requests shows data quality has improved over time. Through the extension in service coverage to less well-mapped areas, this obvious trend is however somewhat obscured. The reduction of failed route requests can be ascribed to the use of ORS not only as a route planner, but also as a tool for data validation." Schmitz, Zipf & Neis (2008)

ORS hits, route requests and failures due to errors in street network over the course of time (Schmitz, Zipf & Neis (2008))

Month/2008 Hits Route Requests Failures Percentage failed
April ca. 800 ca. 1.500* ca. 150* 10%
June ca. 4.200 ca. 5.700* ca. 120* 2%
September ca. 5.600 ca. 14.500** ca. 650** 4,5%
* Routing in Germany
** Routing in Germany, Switzerland, Austria, Italy, Denmark, Liechtenstein, UK and Ireland

ORS route requests and failures due to errors in street network over the course of time from october '08 ...

Month/2008 Route Requests Failures Percentage failed
October ca. 31.600* ca. 1.200 ca. 4%
November ca. 47.500** ca. 800 ca. 1,7%
December ca. 81.300** ca. 2.900 ca. 3,6%
* Routing in Germany, Switzerland, Austria, Italy, Denmark, Liechtenstein, UK and Ireland
** Routing in Germany, Switzerland, Austria, Italy, Denmark, Liechtenstein, UK, Ireland, France and Spain
Failures == Errors like 'No connection between Start- and EndPosition' or 'The path obtained doesn't begin correctly'.

Notice: Errors like 'Please Check your Position!' are not counted here!!

OpenRouteService API

OpenLS Services Status 01.09.2015
Description: Through the OpenLS interface requests can be generated to the appropriate services without further query limitations. The offered API's are only valid for ' one ' year.

In case you plan a long-term use of the interfaces within your projects or high volume or for commercail applications , please contact openrouteservice AT

OpenLS Routing Services*
Restful Webservice route request:
testclient with meta information and schema file for routing service:
direct route request via URL + parameter:
graph routing profile update information:
*currently the maximum request limitation is 1000/hour and user. We kindly ask you to not use the service excessively. In case the server performance will be affected we reserve us the right to block individual service user.
OpenLS Geocoding Service
Restful Webservice geocode request:
testclient with meta information and schema file for geocoding service:
direct geocoding route request via URL + parameter:
OpenLS Directory (POI Search) Service
Restful Webservice directory request:
testclient with meta information and schema file for directory service:
direct directory request via URL + parameter:
OpenLS Acessbility Analysis service*
Restful Webservice accessbility analysis request:
testclient with meta information and schema file for analysis service:
direct accesbility analysis request via URL + parameter:
*for performance reasons only 30 minutes are currently supported

Direct Routing Request (via GET)

  • start = longitude and latitude of the start position, e.g. '7.0892567,50.7265543'
  • via (optional) = longitudes and latitudes of the via positions separated by blank, e.g. '7.0920891,50.7295968 7.1044487,50.7247613 7.1049637,50.7298142'
  • end = longitude and latitude of the end position, e.g. '7.0986258,50.7323634'
  • routepref = the preference of the routing: 'Car', 'Pedestrian', 'Bicycle', 'HeavyVehicle'
  • weighting = the preference of the routing method: 'Fastest', 'Shortest', 'Recommended'
  • distunit = distance unit of route calculation (default in kilometer 'KM', meters 'M', miles 'MI')
  • noMotorways = Avoid Motorways? e.g. 'noMotorways=false' OR 'noMotorways=true'
  • noTollways = Avoid Tollways? e.g. 'noTollways=false' OR 'noTollways=true'
  • noFerries = Avoid Ferrys? e.g. 'noFerries=false' OR 'noFerries=true'
  • noUnpavedroads (only for Bicycle profile) = Avoid unpaved Roads? e.g. 'noUnpavedroads=false' OR 'noUnpavedroads=true'
  • noSteps (only for Bicycle profile) = Avoid Steps? e.g. 'noSteps=false' OR 'noSteps=true'
  • instructions = Route instructions 'instructions=true' or 'instructions=false'
  • lang = language of routeinstructions: 'de' (Deutsch), 'en' (English), 'it' (Italiano), 'fr' (Français), 'es' (Español), 'pt' (Portugese), 'nl' (Nederlands) etc., all supported languagse see here[3]

additional Parameter only for HeavyVehicle route profile

  • hazardous = hazardous material? e.g. 'hazardous=false' OR 'hazardous=true' , further info see here[4]
  • value_weight = maximum weight restriction in tons
  • value_height = maximum height restriction in meter
  • value_length = maximum length restriction in meter
  • value_axleload = maximum axleload restriction in tons
Example URL

URL + Parameter:
Bicycle & Shortest path:,49.240011&end=8.72083,49.7606&via=&lang=de&distunit=KM&routepref=Bicycle&weighting=Shortest&avoidAreas=&useTMC=false&noMotorways=false&noTollways=false&noUnpavedroads=false&noSteps=false&noFerries=false&instructions=false
Car & Fastest path:,49.240011&end=8.72083,49.7606&via=&lang=de&distunit=KM&routepref=Car&weighting=Fastest&avoidAreas=&useTMC=false&noMotorways=false&noTollways=false&noUnpavedroads=false&noSteps=false&noFerries=false&instructions=false
Heavy Vehicle & Fastest path:,49.240011&end=8.72083,49.7606&via=&lang=de&distunit=KM&routepref=HeavyVehicle&weighting=Fastest&noMotorways=false&noTollways=false&noUnpavedroads=false&noSteps=false&noFerries=false&instructions=false&value_length=15&value_height=4&value_weight=7&value_width=4&value_axleload=2&hazardous=true

Direct Geocoding Request (via GET)

  • FreeFormAdress = free text search of adress
  • MaxResponse = maximum amount of search results
  • lon = longitude
  • lat = latitude
Example URL

URL + Parameter:,%20Meckenheimer%20Allee&MaxResponse=20

URL + Parameter :

Direct Accesibility Analysis Request (via GET)

  • position (lon/lat) = longitude and latitude of the position marker, e.g. '-0.12772,51.50715'
  • routePreference = preferred route profile: 'Car', 'Bicycle', 'Pedestrian', 'HeavyVehicle'
  • method = method of isochrones generation: 'RecursiveGrid', 'TIN'
  • interval= intervall of isochrones generation (in minutes): '180'
Example URL

URL + Parameter:,49.42859632294706&minutes=1&routePreference=Car&method=RecursiveGrid&interval=180

URL + Parameter:,49.42859632294706&minutes=1&routePreference=Bicycle&method=TIN&interval=180


In order to show just the map in a certain position and zoom level you may skip the start and end parameters and use the permalink parameters.

  • pos (lon/lat) = longitude (centre of the map),latitude (centre of the map)
  • zoom = zoom level
  • layer(optional) = default background layer (OpenMapsurfer=B000FTTTTTTTTTT, OSM Mapnik=0B00FTTTTTTTTTT)

Example URL
URL + Parameter:,52.27606884292058&zoom=13&layer=B000FTTTTTTTTTT


In order to show the map with a calculated route result use the same parameters then for routing.

  • pos (lon/lat) = longitude and latitude of the position marker, e.g. '-0.12772,51.50715'
  • zoom = zoom level
  • layer(optional) = default background layer (OpenMapsurfer=B000FTTTTTTTTTT, OSM Mapnik=0B00FTTTTTTTTTT)
  • routeWeigh = weighting method of routing: 'Fastest', 'Shortest','Recommended'
  • routeOpt = preferred route profile: 'Car', 'Bicycle','Pedestrian','HeavyVehicle'
  • routeLang = language of the route instructions: 'de' (Deutsch), 'en' (English), 'it' (Italiano), 'fr' (Français), 'es' (Español) etc., all supported languagse see here[5]
  • lang = language of the ORS menu: 'de' (Deutsch), 'en' (English), 'it' (Italiano), 'fr' (Français), 'es' (Español) etc. all suported menu languages see here[6]
  • distUnit = distance unit of route calculations, default meters (m)

Example URL

Supported Webbrowsers

Browser Firefox Opera Safari InternetExplorer Google Chrome
Versions Linux 31 ESR
Linux 33
Win 31 ESR
Win 33
Linux 9.63
Linux 10 alpha
Win 9.63
Win 10 alpha
Win 3.2.1
Win 4 beta
Win 7.0.5730.11 Win
Search Yes Yes Yes Yes Yes
Map Interaction Yes Yes Yes Yes Yes
Routing Yes Yes Yes Yes Yes
AvoidAreas Yes Partial* Partial* Partial* Yes
POI Yes Yes Yes Yes Yes
Accessibility Analysis Yes Yes Yes Yes Yes
  • Currently there are only problems with the deletion of AvoidAreas.

Optimized for resolution 1280x1024 or higher.

User Manual Help


  • The OpenRouteService doesn't interpret OSM Relation:restrictions, which can be a severe limit to the usefulness for traffic routing in some cities. This route is incorrect for example, because the a turn restriction relation is in place shown on this map.
  • Clicking the map often leads to an unintentional change in the start or end location marker.
  • Barriers are not taken into credit. Try a route between the two towns Bremm and Dohr. OpenRouteservice would give you the former road which is still accassible but with a barrier that you can't pass with the car. YourNavigation takes the maped barrier into credit and takes the far longer road (which is the the shortest road for cars for about 5 years now) if you choose car navigation. Can somebody please add the recognition of barriers into OpenRouteService.
  • Ways tagged with construction=* or proposed=* are not taken into credit. See for example [7]. This is bad if the map is not up to date. Possible solution: additional permanent RouteLink which enables it. These tags are deprecated.
  • Another example which does not route the shortest way: [8]
  • Example where pedestian routing works well: [9], but the designated cycleway is ignored [10] when routing for bicycles.


Papers related to OpenRouteService, OpenLS+OSM in some of our applications and projects:

  • Neis, P. (2008): Location Based Services mit OpenStreetMap Daten. Masterthesis FH Mainz
  • Neis, P. and Zipf, A. (2008): Generating 3D Focus Maps for the (mobile) Web - an interoperable approach. In: International Journal of Location Based Services (JLBS). Vol. 2, Issue 2.
  • Neis, P. and Zipf, A. (2007): Realizing Focus Maps with Landmarks using OpenLS Services. 4th International Symposium on LBS and Telecartography 2007. Hongkong.
  • Neis, P., A. Zipf, R. Helsper, Kehl, A. (2007): Webbasierte Erreichbarkeitsanalyse - Vorschläge zur Definition eines Accessibility Analsysis Service (AAS) auf Basis des OpenLS Route Service. REAL CORP 2007. Wien, Austria.
  • Schmitz S., Zipf A. and Neis P. (2008): New Applications based on Collaborative Geodata - the Case of Routing. XXVIII INCA International Congress on Collaborative Mapping and SpaceTechnology, Gandhinagar, Gujarat, India
  • Neis P. and A. Zipf (2008): LBS_2.0 - Realisierung von Location Based Services mit user-generated, collaborative erhobenen freien Geodata. In: J. Roth (Hrsg.): 5. GI/ITG KuVS Fachgespräch Ortsbezogene Anwendungen und Dienste, 4.-5. September 2008, Nürnberg. Sonderdruck Schriftenreihe der Georg-Simon-Ohm-Hochschule Nürnberg Nr. 42, ISSN 1867-5433
  • Schmitz, S., Zipf, A. and Pascal Neis (2008): Proposal to define common resources for OpenGIS Location Services. 5th International Symposium on LBS & TeleCartography. Salzburg. Austria.
  • Haase M., A. Zipf , P. Neis , V. de Camargo (2008): Interoperable Routing Services in the Context of Evacuation Schemes due to Urban Flooding. EnviroInfo 2008 Conference. Environmental Informatics and Industrial Ecology. Lueneburg, Germany.
  • Neis, P., Zipf, A (2008): is three times “Open”: Combining OpenSource, OpenLS and OpenStreetMaps. Accepted for: GIS Research UK (GISRUK 08). Manchester.
  • Brinkhoff,T., M. BERTLING, J. BIERMANN, T. GERVENS, R. KÖNIG, D. KÜMPER, P. NEIS, B. STOLLBERG, C. ROLFS, A. WEISER, J. WEITKÄMPER, A. ZIPF (2008): Offenes Katastrophenmanagement mit freiem GIS Zur interoperablen Kopplung von Leitstellensystem, mobilen Clienten und GDI mit Prozessierungsdiensten. AGIT 2008. Symposium für angewandte Geoinformatik. Salzburg. Austria.
  • Weiser, A., P. Neis, A. Zipf (2006): Orchestrierung von OGC Web Diensten im Katastrophenmanagement - am Beispiel eines Emergency Route Service auf Basis der OpenLS Spezifikation. In: GIS - Zeitschrift für Geoinformatik. 09/2006. pp. 35-41.
  • Neis, P. und Zipf, A. (2008): OpenStreetMap – Grundlagen und Potentiale der freien Wiki-Weltkarte. GIS Report 2008/2009. Harzer Verlag. Karlsruhe.
  • Neis, P. und Zipf, A. (2008): LBS 2.0 mit - die OpenGIS-konforme Routing-Plattform auf Basis der freien Geodaten von OpenStreetMap. GIS Report 2008/2009. Harzer Verlag. Karlsruhe.
  • Neis, P., A. Schilling, A. Zipf (2007): 3D Emergency Route Service (3D-ERS) based on OpenLS Specifications. GI4DM 2007. 3rd International Symposium on Geoinformation for Disaster Management. Toronto, Canada.
  • Neis, P., A. Zipf (2007): A Web Accessibility Analysis Service based on the OpenLS Route Service. AGILE 2007. International Conference on Geographic Information Science of the Association of Geograpic Information Laboratories for Europe (AGILE). Aalborg, Denmark.
  • Bauer, M., P. Neis, C. Weber, A. Zipf (2007): Kontextabhängige Landmarken für mobile 3D Navigationsanwendungen. In: 4. Fachgespräch: Ortsbezogene Anwendungen und Dienste. LMU München.