Skip to content
Daniel J. H edited this page Jan 3, 2017 · 9 revisions

OSRM supports "profiles". Configurations representing different routing behaviours for (typically) different transport modes. Think car or bike routing. A profile describes whether or not we route along a particular type of way, or over a particular node in the OpenStreetMap data, and also how quickly we'll be travelling when we do. This feeds into the way the routing graph is created and thus influences the output routes.

Available profiles

Out-of-the-box OSRM comes with several different profiles, including car, bicycle and foot. Check the profiles directory. You have to pass a profile to osrm-extract:

osrm-extract -p ../profiles/car.lua planet-latest.osm.pbf

A change to the profile will typically affect the extract step as well as the contract step. See Processing Flow.

Profiles are written in the Lua scripting language. The reason for this, is that OpenStreetMap data is not sufficiently straightforward, to simply define tag mappings. Lua scripting offers a powerful way of coping with the complexity of different node,way,relation,tag combinations found within OpenStreetMap data.