The Open Source Routing Machine or OSRM is a
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
implementation of a high-performance
routing
Routing is the process of selecting a path for traffic in a network or between or across multiple networks. Broadly, routing is performed in many types of networks, including circuit-switched networks, such as the public switched telephone netw ...
engine for
shortest path
In graph theory, the shortest path problem is the problem of finding a path between two vertices (or nodes) in a graph such that the sum of the weights of its constituent edges is minimized.
The problem of finding the shortest path between tw ...
s in
road network A street network is a system of interconnecting lines and points (called ''edges'' and ''nodes'' in network science) that represent a system of streets or roads for a given area. A street network provides the foundation for network analysis; for exa ...
s. Licensed under the permissive 2-clause
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
, OSRM is a free network service. OSRM supports Linux, FreeBSD, Windows, and Mac OS X platform.
Overview
It combines sophisticated
routing algorithm
Routing is the process of selecting a path for traffic in a Network theory, network or between or across multiple networks. Broadly, routing is performed in many types of networks, including circuit switching, circuit-switched networks, such as ...
s with the open and free road network data of the
OpenStreetMap
OpenStreetMap (OSM) is a free, open geographic database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial imagery and also import from other freely licensed g ...
(OSM) project. Shortest path computation on a continental sized network can take up to several seconds if it is done without a so-called speedup-technique. OSRM uses an implementation of
contraction hierarchies In computer science, the method of contraction hierarchies is a speed-up technique for finding the shortest-path in a graph. The most intuitive applications are car-navigation systems: a user wants to drive from A to B using the quickest possible ...
and is able to compute and output a shortest path between any origin and destination within a few milliseconds, whereby the pure route computation takes much less time. Most effort is spent in annotating the route and transmitting the geometry over the network.
Since it is designed with OpenStreetMap compatibility in mind, OSM data files can be easily imported. A demo installation is sponsored by
Karlsruhe Institute of Technology
The Karlsruhe Institute of Technology (KIT; german: Karlsruher Institut für Technologie) is a public research university in Karlsruhe, Germany. The institute is a national research center of the Helmholtz Association.
KIT was created in 2009 w ...
and previously by Geofabrik. The screen shot image shown is since September 2015 out of date with loss of attendant routing service features.
OSRM was part of the 2011
Google
Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
class.
[ ]
Features
![T0611 route](https://upload.wikimedia.org/wikipedia/commons/f/fa/T0611_route.png)
* 'Click-to-drag' dynamic routing, in the manner of
Google Maps
Google Maps is a web mapping platform and consumer application offered by Google. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets ( Street View), real-time traffic conditions, and rou ...
* Alternative routes
* Free-to-use API
*
Free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
under the simplified two-clause BSD license
See also
*
GraphHopper
GraphHopper is an open-source routing library and server written in Java and provides a web interface called GraphHopper Maps as well as a routing API over HTTP. It runs on the server, desktop, Android, iOS or Raspberry Pi. By default OpenStreetM ...
References
Further reading
*
*
*
External links
Project homepage*
Demonstration from the project's homepage*
*
:
Free software programmed in C++
OpenStreetMap
Route planning software
Web mapping
Software using the BSD license
{{Free-software-stub