During the graph build process, openrouteservice looks at various tags that are given to OSM ways as a means of identifying whether that way should be included into the routing graph or not. For example, in the foot profile any ways that are marked as highway=motorway are rejected and not included in the graph, meaning that they can never be routed over (for that profile).
The following tables list what tags are taken into account during the initial filtering process. Reject means that the tag value indicates that the way is explicitly rejected form the graph building, Accept means that the tag indicates that the way should be included, and Conditional means that the tag is taken into account during the filtering process, but the acceptance/rejection is based on other tags and logic.
All ways are initially rejected from the graph building unless criteria for acceptance has been met!
The order of items is important, as in many cases a more generic “catch” is introduced towards the end of processing if it has not already been explicitly rejected/accepted.
Notation: italic words are variables defined for the respective section and group several tags. monospace code are tags from openstreetmap. [square brackets] denote a range of possible tags. * denotes any tag, key != * denotes the absence of key.
Definitions: restrictedValues = [private, agricultural, forestry, no, restricted, delivery, military, emergency] intendedValues = [yes, permissive, destination] restrictions = [motorcar, motor_vehicle, vehicle, access] firstValue = value of the first encountered key from restrictions
highway != * AND route != [shuttle_train, ferry]
highway != * AND route = [shuttle_train, ferry] AND firstValue = restrictedValues
highway != * AND route = [shuttle_train, ferry] AND ( firstValue = intendedValues OR firstValue != * AND foot != * AND bicycle != * )