Trace attributes
Last updated
Available onExplorerPay As You GoHobbyist/AcademicEnterprisePlans and pricing
Snap a sequence of GPS coordinates to the road network and get back attributes along the matched path, such as speed limits, road class, and surface type. To get a route with directions instead, use map matching.
POSThttps://transit.land/api/v2/routing/valhalla/trace_attributes
filtersoptional object- Include or exclude specific attribute keys from the response. If omitted, all attributes are returned.
elevation_optional numberinterval - Elevation sample interval in meters along the matched path. 0 = disabled.
Default:
0 shapeoptional array of objects- GPS trace points. Mutually exclusive with encoded_polyline.
shape.date_optional stringtime - Per-location ISO 8601 datetime override, in the format
YYYY-MM-DDTHH:MM, e.g.2016-07-03T08:06. shape.display_optional numberlat - Latitude of the map location in degrees. If provided the
latandlonparameters will be treated as the routing location and thedisplay_latanddisplay_lonwill be used to determine the side of street. Bothdisplay_latanddisplay_lonmust be provided and valid to achieve the desired effect. shape.display_optional numberlon - Latitude of the map location in degrees. If provided the
latandlonparameters will be treated as the routing location and thedisplay_latanddisplay_lonwill be used to determine the side of street. Bothdisplay_latanddisplay_lonmust be provided and valid to achieve the desired effect. shape.heading_optional integertolerance - How close in degrees a given street's angle must be in order for it to be considered as in the same direction of the
headingparameter. The default value is service configuration dependent (60 by default). shape.minimum_optional integerreachability - Minimum number of reachable edges for a snap candidate. The default and max values are service configuration dependent (50 and 100 by default, respectively).
Default:
50 shape.node_optional numbersnap_ tolerance - Snap-to-node distance tolerance in meters. The default value is service dependent (5 by default).
shape.preferred_optional integerlayer - If set, edges whose layer does not match this value are discarded from candidate search. Note that this is a "soft" filter, meaning if no other candidates are found, Valhalla will fall back to including edges that did not match this filter.
shape.preferred_optional stringside - Preferred side of road to snap to.
Default:
eitherAllowed:same,opposite,eitherExample:opposite shape.radiusoptional integer- Candidate search radius in meters: all viable edge candidates within the radius are correlated. If none are found, the best one outside the radius is correlated. The default is service dependent, and defaults to 0 (only the closest edge is considered as candidate). The max value is service configuration dependent (200 by default).
shape.search_optional integercutoff - Hard cutoff for candidate search in meters. Default is service configuration dependent (35000 by default).
shape.search_optional objectfilter - Optional filters to exclude candidate edges based on their attribution.
shape.street_optional stringside_ cutoff Allowed:
motorway,trunk,primary,secondary,tertiary,unclassified,residential,service_otherExample:primaryshape.street_optional integerside_ max_ distance - The max distance in meters that the input coordinates or display ll can be from the edge centerline for them to be used for determining the side of street. Beyond this distance the side of street is set to none. The default value is service configuration dependent (1000 by default).
shape.street_optional integerside_ tolerance - If your input coordinate is less than this tolerance away from the edge centerline then we set your side of street to none otherwise your side of street will be left or right depending on direction of travel. The default value is service configuration dependent (5 by default).
shape.typeoptional string- First and last location are always forced to
break.Default:
breakExample:breakValues breakStop here; starts or ends a route leg. Allows U-turns. throughPass through without stopping. No U-turn; keeps direction of travel. viaWaypoint with a maneuver instruction but no leg-break. Allows U-turns. break_throughLike `break` but does not allow U-turns at the location.
shape_optional stringformat - Not all formats are supported by all endpoints, e.g.
no_shapeis not valid for isochrone.Default:
polyline6Allowed:polyline6,polyline5,geojson,no_shapeExample:polyline6 shape_optional stringmatch Default:
walk_or_snapExample:walk_or_snapValues map_snapMap-matching algorithm for shapes that may not closely follow Valhalla edges, e.g. GPS traces. More expensive. edge_walkExact edge-walking algorithm. Only use when the shape comes from a prior Valhalla route. walk_or_snapTry edge walking first; fall back to map snapping if it fails (default). costingstringrequiredmultimodalis not available. The street graph has no transit; use transit routing at/api/v2/routing/otp/plan.Allowed:
auto,bicycle,pedestrian,truck,bus,taxi,motor_scooter,motorcycle,bikeshare,auto_pedestrianExample:autocosting_optional objectoptions - Costing options keyed by costing model name.
costing_options.autooptional object- Options shared by all costing models. Parsed in src/sif/dynamiccost.cc.
costing_options.bicycleoptional object- Options shared by all costing models. Parsed in src/sif/dynamiccost.cc.
costing_options.busoptional object- Options shared by all costing models. Parsed in src/sif/dynamiccost.cc.
costing_options.motor_optional objectscooter - Options shared by all costing models. Parsed in src/sif/dynamiccost.cc.
costing_options.motorcycleoptional object- Options shared by all costing models. Parsed in src/sif/dynamiccost.cc.
costing_options.pedestrianoptional object- Options shared by all costing models. Parsed in src/sif/dynamiccost.cc.
exclude_optional array of objectslocations - A set of locations to exclude or avoid within a route.
exclude_locations.date_optional stringtime - Per-location ISO 8601 datetime override, in the format
YYYY-MM-DDTHH:MM, e.g.2016-07-03T08:06. exclude_locations.display_optional numberlat - Latitude of the map location in degrees. If provided the
latandlonparameters will be treated as the routing location and thedisplay_latanddisplay_lonwill be used to determine the side of street. Bothdisplay_latanddisplay_lonmust be provided and valid to achieve the desired effect. exclude_locations.display_optional numberlon - Latitude of the map location in degrees. If provided the
latandlonparameters will be treated as the routing location and thedisplay_latanddisplay_lonwill be used to determine the side of street. Bothdisplay_latanddisplay_lonmust be provided and valid to achieve the desired effect. exclude_locations.heading_optional integertolerance - How close in degrees a given street's angle must be in order for it to be considered as in the same direction of the
headingparameter. The default value is service configuration dependent (60 by default). exclude_locations.minimum_optional integerreachability - Minimum number of reachable edges for a snap candidate. The default and max values are service configuration dependent (50 and 100 by default, respectively).
Default:
50 exclude_locations.node_optional numbersnap_ tolerance - Snap-to-node distance tolerance in meters. The default value is service dependent (5 by default).
exclude_locations.preferred_optional integerlayer - If set, edges whose layer does not match this value are discarded from candidate search. Note that this is a "soft" filter, meaning if no other candidates are found, Valhalla will fall back to including edges that did not match this filter.
exclude_locations.preferred_optional stringside - Preferred side of road to snap to.
Default:
eitherAllowed:same,opposite,eitherExample:opposite exclude_locations.radiusoptional integer- Candidate search radius in meters: all viable edge candidates within the radius are correlated. If none are found, the best one outside the radius is correlated. The default is service dependent, and defaults to 0 (only the closest edge is considered as candidate). The max value is service configuration dependent (200 by default).
exclude_locations.rank_optional booleancandidates - Rank snap candidates by distance to input.
Default:
true exclude_locations.search_optional integercutoff - Hard cutoff for candidate search in meters. Default is service configuration dependent (35000 by default).
exclude_locations.search_optional objectfilter - Optional filters to exclude candidate edges based on their attribution.
exclude_locations.street_optional stringside_ cutoff Allowed:
motorway,trunk,primary,secondary,tertiary,unclassified,residential,service_otherExample:primaryexclude_locations.street_optional integerside_ max_ distance - The max distance in meters that the input coordinates or display ll can be from the edge centerline for them to be used for determining the side of street. Beyond this distance the side of street is set to none. The default value is service configuration dependent (1000 by default).
exclude_locations.street_optional integerside_ tolerance - If your input coordinate is less than this tolerance away from the edge centerline then we set your side of street to none otherwise your side of street will be left or right depending on direction of travel. The default value is service configuration dependent (5 by default).
exclude_locations.typeoptional string- First and last location are always forced to
break.Default:
breakExample:breakValues breakStop here; starts or ends a route leg. Allows U-turns. throughPass through without stopping. No U-turn; keeps direction of travel. viaWaypoint with a maneuver instruction but no leg-break. Allows U-turns. break_throughLike `break` but does not allow U-turns at the location.
exclude_optional array or objectpolygons - Array of coordinate rings
[[lon,lat],…]or a GeoJSON FeatureCollection. Roads intersecting these rings will be avoided during path finding. Takes one of the 2 forms listed below. formatoptional string- Not all formats are supported by all endpoints, e.g.
geotiffis isochrone-only.Default:
jsonAllowed:json,gpx,osrm,pbf,geotiff,mvtExample:json languageoptional string- BCP47 locale for narrative output. See locales/ for supported values.
Default:
en-US linear_optional array of objectscost_ factors - Customized cost factors that influence path finding, specified as an array of JSON objects. Objects can be either a GeoJSON linestring feature and a
"factor"property or a plain object with a "shape" key, whose value needs to be an encoded polyline (with 6 digit precision), and a "factor" key whose value needs to be float. Valhalla will perform an edge walk (see the map matching documentation for more info) to match the geometry onto edges and use those factors in costing. Edges with factors larger than 1 will be increasingly avoided, while edges with factors smaller than 1 increasingly favored.
adminsarray of objects- Countries and states the matched path passes through. Each field is absent when unknown.
alternate_array of objectspaths - Other plausible matches. Always present, and empty when the trace matched one way only. Each holds the same path fields as the response itself:
osm_changeset,shape,confidence_score,raw_score,admins,edges,elevation_interval,elevation,matched_points, andshape_attributes. edgesarray of objects- Edges the trace was matched onto, in order.
edges.bicycle_integernetwork - Signed bicycle networks, as a bit mask. 1 national, 2 regional, 4 local, 8 mountain.
edges.hov_stringtype - Occupancy requirement, meaningful only on HOV-only edges. Off by default; once requested it is on every edge, and ordinary roads read
HOV-2.Allowed:
HOV-2,HOV-3 edges.lane_array of objectsconnectivity - Which lanes on the incoming way lead to which lanes on this edge. Present only when the data has lane connectivity.
edges.levelsarray of arrays- Building levels the edge spans, as
[from, to]pairs. Present only where the data has levels. edges.max_integerdownward_ grade - Steepest downward slope, in degrees. -500 when the tiles have no elevation data.
edges.max_integerupward_ grade - Steepest upward slope, in degrees. -500 when the tiles have no elevation data.
edges.mean_integerelevation - Mean elevation in meters, or feet when
unitsismiles. Absent when the tiles have no elevation data. edges.node_integer (int64)id - OpenStreetMap node the edge starts at. Present only when the tiles were built with node identifiers.
edges.road_stringclass - Road class.
Allowed:
motorway,trunk,primary,secondary,tertiary,unclassified,residential,service_other edges.signobject- Guide-sign text on the edge. Present only where the edge has signs, and each list only when the sign carries it.
edges.source_numberpercent_ along - Where the path enters the edge, from 0 to 1. Present only when not 0.
edges.speed_integer or stringlimit - Posted speed limit, or
unlimited. Absent when unknown. Takes one of the 2 forms listed below. edges.speed_stringtype - Whether the speed came from a tagged maxspeed or was assigned by road class.
Allowed:
tagged,classified edges.speeds_objectfaded - The speed from each traffic source.
speeds_non_fadedis the source's own value;speeds_fadedblends live traffic into the historical speed with distance from the start of the route, and appears only when the request'sdate_timeis the current time. Each source is absent when the edge has none, exceptno_flow. edges.speeds_objectnon_ faded - The speed from each traffic source.
speeds_non_fadedis the source's own value;speeds_fadedblends live traffic into the historical speed with distance from the start of the route, and appears only when the request'sdate_timeis the current time. Each source is absent when the edge has none, exceptno_flow. edges.surfacestring- Road surface, from smoothest to roughest.
Allowed:
paved_smooth,paved,paved_rough,compacted,dirt,gravel,path,impassable edges.target_numberpercent_ along - Where the path leaves the edge, from 0 to 1. Present only when not 1.
edges.traffic_array of objectssegments - Traffic segments the edge belongs to. Present only when traffic segment data is loaded.
edges.traversabilitystring- Which directions the edge can be traveled in by the request's mode.
Allowed:
none,forward,backward,both edges.usestring- What the edge is used for.
Allowed:
road,ramp,turn_channel,track,driveway,alley,parking_aisle,emergency_access,drive_through,culdesac,living_street,service_road,cycleway,mountain_bike,sidewalk,footway,elevator,steps,escalator,path,pedestrian,platform,bridleway,pedestrian_crossing,rest_area,service_area,other,rail-ferry,ferry,rail,bus,egress_connection,platform_connection,transit_connection,construction
elevationarray of numbers- Elevation along the path, sampled every
elevation_interval. Present withelevation_interval. elevation_numberinterval - Spacing of the
elevationsamples, in meters, or feet whenunitsismiles. Present when the request setselevation_interval. matched_array of objectspoints - One entry per input point, describing how it was matched.
matched_points.begin_booleanroute_ discontinuity - Whether the path breaks before this point, as when the trace jumps. Present only when true.
matched_points.distance_numberalong_ edge - How far along that edge the point falls, from 0 to 1. Absent for unmatched points.
matched_points.distance_numberfrom_ trace_ point - Distance in meters from the input point to the matched point. Absent for unmatched points.
matched_points.edge_integerindex - Index into
edgesof the edge this point matched. Absent for unmatched points.
See the Routing Platform overview for API access, travel modes, and the machine-readable schema.
Reference: Valhalla map matching API reference