OpenRouteService
OpenRouteService (http://www.openrouteservice.org - 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):
|
Contents |
General Information
| Online since: | April 2008 |
|---|---|
| Developed by: | Pascal Neis |
| Idea: | Pascal Neis & Alexander Zipf University of Heidelberg GIScience (Geoinformatics) Research Group ([1]) |
| Currently supported Countries: | Complete Europe! (routing and geocoder)
Worldwide: Directory Service (POI-search) Thanks to Joe & Marcus |
| Supported Languages for RouteInstructions (Route Service): | see OpenRouteService/Instructions |
| Routing algorithm OLS Route Service: | A* (A-Star); Routing algorithm Accessibility Analysis Service: Dijkstra |
| new Website (beta version) | http://koenigstuhl.geog.uni-heidelberg.de/ors/ by: Carina Lannig, Olier Roick, Timm |
| Data updates by: | Lukas Loos |
Report Feature Requests, General Feedback, Comments, Suggestions, Bugs ... on Talk:OpenRouteService
What can you do on ORS?
OpenRouteService.org 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 OpenRouteService.org based on OSM data:
- 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.
- 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
- 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.
- In the Emergency Route Service you can specify areas that will be avoided by your route.
- ...
Components of ORS
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: http://wiki.openstreetmap.org/wiki/DE:Rollstuhlfahrer-Routing
it is also used for haiti emergency routing: http://openls.geog.uni-heidelberg.de/osm-haiti/
RouteInstructions
Please help to improve the Instructions and the translations!
- ca_ES - Catalan
- cs_CZ - Czech
- de_DE - German
- de_DE_dialects - German dialects
- da_DK - Danish
- en_EN - English
- eo_EO - Esperanto
- fi_FI - Finnish
- es_ES - Spanish
- nl_BE - Dutch (Belgium)
- nl_NL - Dutch
- fr_FR - French
- it_IT - Italien
- lt_LT - Lithuanian
- ru_RU - Russian
- se_SE - Swedish
- tr_TR - Turkish
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!! | |||
ORS RouteLink
RouteLink
Parameters
- 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'
- pref = the preference of the routing: 'Fastest', 'Shortest', 'Pedestrian' or 'Bicycle'
- lang = language of routeinstructions: 'de' (Deutsch), 'en' (English), 'it' (Italiano), 'fr' (Français), 'es' (Español)
- noMotorways = No Motorways? e.g. 'noMotorways=false' OR 'noMotorways=true'
- noTollways = No Tollways? e.g. 'noTollways=false' OR 'noTollways=true'
- lon = longitude (centre of the map)
- lat = latitude (centre of the map)
- zoom = zoom level
All parameters are optional. If you do not use the PermaLink parameters (lon, lat, zoom), default values will be used which will make you see a map of Bonn.
Example URL
Normal: http://openrouteservice.org/index.php?start=7.0892567,50.7265543&end=7.0986258,50.7323634&lat=50.72905&lon=7.09574&zoom=15&pref=Fastest&lang=de
Via-Points: http://openrouteservice.org/index.php?start=7.0892567,50.7265543&end=7.0986258,50.7323634&via=7.0920891,50.7295968%207.1044487,50.7247613%207.1049637,50.7298142&lat=50.72889&lon=7.09655&zoom=15&pref=Fastest&lang=de
RouteLink only with Start or End Position
Just skip the end or the start parameter.
Example URL
http://openrouteservice.org/index.php?start=7.0936279,50.7276936&lon=7.0936279&lat=50.7276936&pref=Fastest&lang=en&zoom=15
http://openrouteservice.org/index.php?end=7.0936279,50.7276936&lon=7.0936279&lat=50.7276936&pref=Shortest&lang=de&zoom=15
PermaLink
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 (otherwise you'll see a map of Bonn):
- lon = longitude (centre of the map)
- lat = latitude (centre of the map)
- zoom = zoom level
Example URL
http://openrouteservice.org/index.php?lon=7.5&lat=50.73&zoom=9&end=7.0936279,50.7276936&pref=Fastest&lang=de
PositionLink
Parameters
- position = longitude and latitude of the position marker, e.g. '-0.12772,51.50715'
- zoom = zoom value of the map, e.g. '16'
- pref = the preference of the routing: 'Fastest', 'Shortest', 'Pedestrian' or 'Bicycle'
- lang = language of the routeinstructions: 'de' (Deutsch), 'en' (English), 'it' (Italiano), 'fr' (Français), 'es' (Español)
Example URL
http://openrouteservice.org/index.php?position=-0.12772,51.50715&zoom=16&pref=Bicycle&lang=en
or only: http://openrouteservice.org/index.php?position=-0.12772,51.50715&zoom=16
Supported Webbrowsers
| Browser | Firefox | Opera | Safari | InternetExplorer | Google Chrome |
|---|---|---|---|---|---|
| Versions | Linux 2.0.0.20 Linux 3.0.5 Linux 3.1b2 Win 2.0.0.20 Win 3.0.5 Win 3.1b2 |
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 2.0.174.0 |
| 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
Criticism
Neither the source code nor any formal documentation on the interpretation of OSM tags has been released. This undermines the tag standardisation processed within the OSM community.
- The core code of the routing algorithmus is from GeoTools - The Open Source Java GIS Toolkit () and the used OSM Tags you can find under OpenRouteService#Used OSM Tags for Routing!
- The talk page and the diary entries [] show that some users are uncertain. "Used OSM Tags for Routing" is not a formal or complete specification and does not reveal how the travel times are calculated. So there is a danger that some users may start tagging for ORS, contributing to a closed tagging system.
- What should I or you and I do? Create a "formal or complete specification"? What is with Routing or OSM tags for routing! Until now, it is no generell tag standardisation in the OSM Projekt, why we need this now for routing?
- I agree the OSM standardisation processes are quite strange, but that does not mean it does not exist or is irrelevant. Many people contribute to the process by publishing source code that can be reviewed. Alternatively YOU can document YOUR interpretation of the tags. To the point where anyone can work out the route that ORS will produce. If a discrepancy between the document and ORS occurs, we must all see it as a bug in ORS. OSM tags for routing has 10 different authors, is much too vague and changes much too frequently, so you can't say that's what you've implemented.
- I've never sayed I implemented those tags from OSM tags for routing. However, in my opinion the interpretation of the highway-tag is not so important, but if you think so. The different speeds which ORS used are not a secret, I add it to OSM tags for routing (see (km/h)!).
- It would be helpful to let the user set the speed limit for each roadtype.
- I've never sayed I implemented those tags from OSM tags for routing. However, in my opinion the interpretation of the highway-tag is not so important, but if you think so. The different speeds which ORS used are not a secret, I add it to OSM tags for routing (see (km/h)!).
- I agree the OSM standardisation processes are quite strange, but that does not mean it does not exist or is irrelevant. Many people contribute to the process by publishing source code that can be reviewed. Alternatively YOU can document YOUR interpretation of the tags. To the point where anyone can work out the route that ORS will produce. If a discrepancy between the document and ORS occurs, we must all see it as a bug in ORS. OSM tags for routing has 10 different authors, is much too vague and changes much too frequently, so you can't say that's what you've implemented.
- What should I or you and I do? Create a "formal or complete specification"? What is with Routing or OSM tags for routing! Until now, it is no generell tag standardisation in the OSM Projekt, why we need this now for routing?
- The talk page and the diary entries [] show that some users are uncertain. "Used OSM Tags for Routing" is not a formal or complete specification and does not reveal how the travel times are calculated. So there is a danger that some users may start tagging for ORS, contributing to a closed tagging system.
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.
Notes
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
- Zipf, A., Neis, P. und Fellner M. (2008): Wirbelstürmer - Freie Mapping- und Routing-Services mit von Usern erzeugten Karten. In: LINUX Magazin (Professoren-.Ausgabe). 01/09 (erschienen 12/2008). S 34-39. http://www.linux-magazin.de/heft_abo/ausgaben/2009/01/wirbelstuermer
- 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): OpenRouteService.org 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 OpenRouteService.org - 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.
