Open Source Routing Machine - C++ backend
c-plus-pluscppcpp17isochronesmap-matchingopenstreetmaposmosrmroutingrouting-enginetraveling-salesman
We build `osrm_contract` (the library) linking in libtbb. We then build `osrm-contract` (the binary) linking in `osrm_contract` (the library). Because we're only using TBB's `parallel_invoke` in the code for the binary, it seems like the linker discards some symbols in the library. Therefore we have to link libtbb for the binary again. Even worse, the order now matters: if we first link in `osrm_contract` and then libtbb, we're still hitting the issue re. discarded symbols. Therefore we first link in all dependencies (libtbb, libboost*), and only then `osrm_contract`. Strictly speaking, we probably have to do this for all of our binary targets, or we will hit similar issues in the future. |
||
---|---|---|
cmake | ||
docker | ||
docs | ||
example | ||
features | ||
include | ||
profiles | ||
scripts | ||
src | ||
test | ||
third_party | ||
unit_tests | ||
.clang-format | ||
.clang-tidy | ||
.cncc.style | ||
.eslintrc | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor-build.bat | ||
appveyor.yml | ||
build-local.bat | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
codecov.yml | ||
cucumber.js | ||
Doxyfile.in | ||
LICENCE.TXT | ||
package.json | ||
profile.lua | ||
README.md | ||
taginfo.json |
About
The Open Source Routing Machine is a high performance routing engine written in C++11 designed to run on OpenStreetMap data.
Current build status
build config | status |
---|---|
Linux | ![]() |
Windows | |
Coverage |
Building
For instructions on how to build and run OSRM, please consult the Wiki.
To quickly try OSRM use our free and daily updated online service
Documentation
Full documentation
Quick start
Building OSRM assuming all dependencies are installed:
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
sudo cmake --build . --target install
Loading preparing a dataset and starting the server:
osrm-extract data.osm.pbf -p profiles/car.lua
osrm-contract data.osrm
osrm-routed data.osrm
Running a query on your local server:
curl http://127.0.0.1:5000/13.388860,52.517037;13.385983,52.496891?steps=true&alternatives=true
Running a request against the Demo Server
First read the API usage policy.
Then run simple query with instructions and alternatives on Berlin:
curl https://router.project-osrm.org/13.388860,52.517037;13.385983,52.496891?steps=true&alternatives=true
References in publications
When using the code in a (scientific) publication, please cite
@inproceedings{luxen-vetter-2011,
author = {Luxen, Dennis and Vetter, Christian},
title = {Real-time routing with OpenStreetMap data},
booktitle = {Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems},
series = {GIS '11},
year = {2011},
isbn = {978-1-4503-1031-4},
location = {Chicago, Illinois},
pages = {513--516},
numpages = {4},
url = {http://doi.acm.org/10.1145/2093973.2094062},
doi = {10.1145/2093973.2094062},
acmid = {2094062},
publisher = {ACM},
address = {New York, NY, USA},
}