Skip to content

NetworkForge 1.0.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 21:28
· 23 commits to main since this release

The first stable release: every OSM feature a network build needs -
new lines, changed and removed streets, turn restrictions, points on
the network, ferries - tested against Valhalla.

Stability

  • The command line (build, check, presets, info), its exit codes
    and its --json events, and the Python API (build_network,
    write_osm, write_gpkg, the errors) are now stable. New fields may
    be added to the JSON events; none is removed or changes meaning
    without a new major version.

Added

  • New ferries. A custom line with route=ferry (or
    route=shuttle_train) and no highway tag is a ferry, as in
    OpenStreetMap. It joins the streets only at its ends, passing over
    streets it crosses. Everyone may use it unless an access tag closes
    it (motor_vehicle=no for a foot ferry); duration=hh:mm sets the
    crossing time, else 10 km/h - both as Valhalla reads them. In the
    GeoPackage every mode takes the ferry's time. info --json lists
    tag_values.route and tag_patterns.duration.
  • Warnings for values routers don't know on surface, smoothness,
    tracktype, sac_scale, sidewalk, cycleway*, segregated, lit,
    toll, junction, bridge, tunnel and incline, for new lines and
    edits alike, with the likely spelling (surface='asphault' ... did you mean 'asphalt'?). OSM allows any value, so the build carries on.
    info --json lists the known values in tag_values (and
    tag_patterns.incline).
  • Deleting tags from an existing street. On a feature with an OSM
    id, remove_tags=maxspeed;motor_vehicle deletes those tags from the
    stretch (an empty attribute still means "no change"). Deleting
    oneway makes the street two-way. info --json has
    remove_tags_field.
  • Points: barriers, signals, crossings. A point in the custom layer
    with node tags (barrier=bollard, highway=traffic_signals,
    crossing=zebra, ...) tags the node it is on (within snap_tolerance)
    or cuts the nearest street there with a new node - on new lines,
    existing and changed streets alike. remove_tags on a point deletes
    an existing node's tags (take out a bollard). layer picks the street
    where a bridge crosses one. check / build --json report points /
    tagged_nodes.
  • Via-way turn restrictions. A turn line through two junctions
    joined by a street becomes a restriction over that stretch (from way,
    via way, to way), e.g. no U-turn across a dual carriageway. Valhalla
    obeys it.
  • Tests for multi-part custom lines: offline (parts that share an end,
    cross, nearly meet, stray from the network or collapse; random
    multi-part lines in the property tests) and in Valhalla (each part
    routable, crossing parts joined, per-part edits and removals,
    standalone networks).

Changed

  • Point features are accepted in the custom layer (they tag nodes,
    see above); only other geometry types are refused, now as "not a line
    or point".

Fixed

  • A multi-part feature that changes an existing street (osm_id)
    now applies to each part on its own: oneway follows the direction
    each part is drawn in (all parts took the first part's), and a problem
    or an unchanged feature is reported once, not once per part.
  • A new roundabout without oneway is one-way in the GeoPackage's
    car_direction / bike_direction, as OSM and Valhalla treat it. It
    was marked two-way there (the PBF was already right).
  • A line that crosses itself within 1 m of a motorway (or another
    grade-separated way) no longer joins it there. The line was cut at the
    crossing before snapping, and the cut ends counted as line ends, which
    may join a motorway (as slip roads do). Now only the ends you drew do.
    Found by the new multi-part property tests; single lines were affected
    too.