Repository navigation
NetworkForge 1.1.0
Added
ramp,ramp:wheelchair,ramp:strollerandramp:bicycleare
written for your own lines and for changes to existing streets (they
were dropped), and their values are checked. Valhalla tests record
what 3.9 does with them and with kerbs: nothing yet. Steps with a
ramp still stop a wheelchair, and no kerb does.- A warning names fields that look like OpenStreetMap tags
(tactile_paving,cycleway:surface...) but that NetworkForge
doesn't write, so routers won't see them. Names, sources, notes and
addresses (name:en,source:maxspeed...) aren't warned about. - A warning when a local OSM file (
osm_source=/--osm-source)
doesn't cover the whole area. A region's extract stops at its
boundary, so a box reaching across it quietly lost streets: built from
Geofabrik's Berkshire file, a box around Reading lost about 1,800
streets north of the Thames, with no warning. The build now finds the
part of the area where the file has no streets at all, reaching the
area's edge and covering at least 5% of it, and says where it is.
The sea side of a coastline doesn't count. With--jsonthe warning
event carriesgaps, a[west, south, east, north]box for each part.
Fixed
Found by probing the build with shapes the tests didn't draw
(tests/integration/test_edge_cases.py; the first four changed routes
in Valhalla).
- A custom bridge, tunnel, ferry or line on another
layerwas joined
to a custom road it crosses wherever either had a vertex within
snap_toleranceof the crossing. A vertex of a bridge drawn exactly
on a junction (or of a road on a motorway's node) joined it too. Only
ends join now, as documented. - A line crossing or ending on a street right beside the dead end of
another way (withinsnap_tolerance) was pulled onto the dead end and
never joined the street. - Making a street one-way when its OSM way closes on itself (a loop, a
crescent): drawn against the way's direction it was written the wrong
way round, and the closing stretch was reversed in the GeoPackage
either way. - An existing turn restriction over a via way was dropped, silently,
when any part of one of its ways was changed. It now follows the
pieces, as restrictions with a via node did. (It still goes, rightly,
if part of the via way is removed.) - About one line end in ten moved onto a street mid-block became two
nodes in one place joined by an edge of no length; so did three lines
crossing at one point. --gpkg(or another output) naming the--customfile overwrote the
custom data and reported success. Outputs that would replace an input
or each other are refused, and a missing output folder is reported
before the build rather than after it.- An extent or custom layer in a projection measured in feet (US State
Plane) was built in feet:length_mand travel times 3.28 times too
large. Such projections are replaced by the UTM zone. - Attributes named
index_right/index_leftcrashed the build;fid,
a name differing from another only in capitals, or a GeoPackage
analysis column name (car,length_m...) stopped the GeoPackage
being written. The first and last are set aside with the other
internal names; the others get a trailing underscore in the
GeoPackage. --json: a feature whose--id-fieldis empty was written asNaN,
which is not JSON; it isnull.- Control characters in a tag value made OSM XML that could not be read;
an extent file without features and an infinite--snap-toleranceare
input errors (exit 3), not crashes. - A new line drawn to the pier of an existing ferry that no street
reaches got a node of its own beside the ferry's, so the ferry stayed
out of reach in Valhalla. Its end now joins the ferry. maxspeed=0gave endless travel times (GeoPackage minutes, OSMnx
routing): a speed of 0 is ignored, as routers do, and on a custom
feature it is an error.bridge=0/bridge=false(and the same fortunnel) counted as a
bridge, so the line didn't join the streets it crossed. They mean no.- A change to an existing street drawn ACROSS a block (through the
middle of it) was applied to that block. A feature must now run along
the stretch, within 45 degrees.
Tests
-
Cycling infrastructure is now tested in Valhalla
(tests/valhalla/test_cycling.py): a cycle lane, a track or a
cycleway draws cyclists off a shorter street and nobody else; a lane
added to an existing street makes it cheaper to cycle; unpaved
surfaces close a street to the bicycles that can't take them. -
Wheelchair routing (
tests/valhalla/test_wheelchair.py): steps,
wheelchair=noand gravel turn a wheelchair back and nobody else. -
Less common tags (
tests/valhalla/test_less_common_tags.py):
motorcycles, mopeds and taxis, buses against a one-way street,
roundabouts,maxspeed:hgv, rough surfaces and mountain paths.
Documentation
- network-analyst.md
says which cycling tags Valhalla routes by and which it ignores
(cycleway:both,bicycle_road,cyclestreet). - The tagging guide is now network-rules.md,
"Network rules: how your lines become a network", written for people
using the QGIS plugin. It opens with a short summary of the rules
instead of code, names each setting as the QGIS form does, and ends
with a table of each setting in QGIS, on the command line and in
Python. The code examples are in the README.docs/tagging-guide.md
is now a short page pointing to the new one. Errors'guide(in
--jsonerror events too) now names the file:
network-rules.md#presets, notpresets. - The guide brought up to date. The
quick start shows the command line, the PBF and the GeoPackage, plus
a table of Python options with their CLI flags. Points are allowed in
the layer, and lines that join nothing are kept with a warning (the
guide said both were refused). Attributes that aren't tags are kept in
the GeoPackage. The reserved names list is complete. New:wheelchair,
maxspeed:hgv, time-of-day access, line ends that nearly meet, loops,
an error table for points, and a list of the warnings and what to do
about each.