Open Source Routing Machine - C++ backend
c-plus-pluscppcpp17isochronesmap-matchingopenstreetmaposmosrmroutingrouting-enginetraveling-salesman
Although we check for valid coordinates in the table plugin via `check_all_coordinates`, we do not check for #srcs > 0 and #dsts > 0. This would be fine as the grammar parser combines adding coordinates and setting their `is_source` and `is_destination` property, which makes adding coordinates without specifying source or destination impossible. See: route_parameters.cpp, AddSource, AddDestination, and api_grammar.hpp In contract, the Polyline codepath does not do this! In fact, it only lets you set coordinates, but not their `is_source` or `is_destination` property. See: route_parameters.cpp, SetCoordinatesFromGeometry Therefore, the following queries only set coordinates: http 'http://localhost:5000/table?locs=s_hhFg{arEgEfEgEfEgEfEgEfEgEfEgEfEgEfEgEfEgEfE' http 'http://localhost:5000/table?locs=_p~iF~ps|U_ulLnnqC_mqNvxq`@' but fail to specify sources and targets! The distance table plugin now assumes `is_course` and `is_destination` is the same size as `coordinates`. And happily accesses uninitialized memory. |
||
---|---|---|
cmake | ||
config | ||
docker | ||
example | ||
features | ||
include | ||
profiles | ||
scripts | ||
src | ||
test | ||
third_party | ||
unit_tests | ||
.clang-format | ||
.clang-tidy | ||
.cncc.style | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor-build.bat | ||
appveyor.yml | ||
build-local.bat | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
Doxyfile.in | ||
Gemfile | ||
Gemfile.lock | ||
LICENCE.TXT | ||
profile.lua | ||
Rakefile | ||
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 | branch | status |
---|---|---|
Linux | master | ![]() |
Linux | develop | ![]() |
Windows | master/develop | |
LUAbind fork | master | ![]() |
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
See the Wiki's server API documentation as well as the library API documentation
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},
}