-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Traffic
Biggest feature in OSRM 4.9.0
is experimental support of traffic data. This
is achieved by providing osrm-prepare
with an additional file that specifies
edge weight updates. For convenience, updates can be specified in a csv file; each line has to follow the format from_osm_id,to_osm_id,edge_speed_in_km_h
. The from/to ids are OSM node IDs that are directly connected.
./osrm-extract data.osm.pbf -p profile.lua --generate-edge-lookup
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv
# modify updates.csv
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv
# Repeat in loop for desired update time
Since this is too slow for big datasets to get meaningful updates cycles, you
can do a partial contraction using the --core-factor
parameter.A core factor drastically increases query times. As a result, the alternative-route search is slowed down immensely. Note that the viaroute
service calculates alternative routes by default, so you should take care to disable them in each request by appending &alternative=false
to the query. If you do not, response times will be very slow.
.
./osrm-extract data.osm.pbf -p profile.lua --generate-edge-lookup
# about x8 speedup wrt to --core-factor 1.0
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 0.8
# modify updates.csv
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 0.8
# Repeat in loop for desired update time
For even more speedups use the --level-cache
option:
./osrm-extract data.osm.pbf -p profile.lua --generate-edge-lookup
# For the first run a core-factor of 1.0 is required
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 1.0
# modify updates.csv
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 0.8 --cache-level true`
# Repeat in loop for desired update time
A level cache should always be generated with a full hierarchy (core=1.0). After this initial generation, any core factor can be specified.