Skip to content

Releases: ryan-bush/osm-relatify

1.2.0

Choose a tag to compare

@ryan-bush ryan-bush released this 28 Sep 08:27
6238a31

New

  • Download this view: a new map button downloads every cell in view that hasn't been downloaded yet, up to 256 cells. Long routes no longer need an edge click every couple of roads (#83)
  • Platform tags: on bus routes, a platform missing any of highway=bus_stop, public_transport=platform or bus=yes gets a button that queues the missing tags for upload (#81, #82)
  • Stop areas for new stops: a new stop is put in a stop area as soon as it's placed. It joins the area its place is already in, or starts a new one with its stop position and any stop of the same name opposite (#87)
  • Parking aisles: bus routes can now use service=parking_aisle ways (#78)

Fixed

  • Relations near a stop with an unrecognised public_transport value (e.g. pole) failed to load with a 500 error (#86)
  • Stops tagged only highway=bus_stop, and public_transport=platform + bus=yes platforms with no highway tag, were not loaded (#81)
  • A stop position was offered where one already existed, when NaPTAN's bearings were swapped or the route turns and calls on the far side (#85)
  • Stop letters spelled Bay 1, Stop A and so on in local_ref didn't match NaPTAN, so those stops showed as missing from OSM (#73)
  • Circular routes repeated their first stop at the start even when the route doesn't return to it (#74)
  • Ways beyond a U-turn at a mini roundabout, or at the end of a way the relation lists twice in a row, were reported as unused (#76)
  • A route master with several operators, networks or colours (A;B) flagged every variant as different (#77)
  • Loading a route could hit an Overpass 429, and panning grew the cached download each time (#75)

Updated

  • Loading a route takes 2 Overpass queries instead of 4 (#75)
  • The first download around a relation reaches 500 m from its ways instead of 250 m (#79)
  • Edge-click downloads cover 5×5 cells instead of 3×3, and skip cells already downloaded (#83)
  • Finding the next download's triggers takes ~0.15 s instead of ~2.8 s on large areas (#84)
  • The route summary is wider, stays open after changes made from it, and keeps ticked stops and the changeset comment when it refreshes (#80)

Full changelog: v1.1.0...v1.2.0

1.1.0

Choose a tag to compare

@ryan-bush ryan-bush released this 18 Sep 12:14
v1.1.0
17ab1c9

Route masters

  • A route shows which master it belongs to, and can be linked into an existing one or into
    a new one created alongside it.
  • A line's variants are listed side by side from its master, so you can work through them
    one after another without going back to the relation id box.
  • The master's tags are editable from the same place, and a new master's ref follows the
    route's, in both directions, while both are still being written.
  • A new master is written after the route it holds, so the route exists by the time the
    master names it.
  • A master whose member could not be looked up says so rather than quietly listing fewer
    variants.

Stops and stop areas

  • Stop positions can be placed and are paired with their platform by direction: a stop
    position tagged direction=forward/backward is not paired with a platform facing the
    other way. A pending stop position follows its way when a download renumbers the way's
    pieces, instead of being dropped from the route but still uploaded, and the upload
    refuses one the route does not call at.
  • A stop area's name and tags no longer leak into its members' tags. An unnamed area takes
    its platform's name, and members carrying the older stop_position role are read
    correctly — the role is put right when the app has reason to change the area anyway.
  • A stop area in an upload drops new stops the upload does not create, and is left out
    entirely when nothing remains for it to do.
  • Unnamed bus stops, and unnamed stop positions tagged bus=yes, are downloaded and shown
    rather than passed over.
  • A stop area whose members carry no tags loads instead of failing the route.
  • The route's stop list shows which stops are in a stop area and which matched NaPTAN.
  • New: a magnifying glass beside each stop in the finish-editing summary zooms the map
    to it.

NaPTAN (Great Britain)

  • NaPTAN can fill in the name of a stop that has none, and an OSM stop within 30 m of a
    NaPTAN stop with no other match is offered NaPTAN's name and code — rather than a new
    stop being suggested beside the one already there.
  • Same-named NaPTAN stops on opposite sides of a road are told apart by the direction their
    buses travel, read from where the platform stands relative to its stop position, or from
    the side of the nearest road when it has none.
  • Customer request (CUS) stops are suggested, tagged naptan:BusStopType=CUS.
  • A hyphen counts as a space when comparing stop names.
  • The wrong-direction warning no longer convicts on naptan:Bearing alone: that tag is
    copied from one stop of a pair onto the other often enough that the kerb a stop actually
    stands at is the better witness.

Routing

  • Routes are calculated from the kerb for the country's driving side, looked up from the
    country boundary, instead of always the right. The side can be overridden per route, and
    a road's direction set from its context menu to settle which way round a loop goes.
  • A warning flags stops the route passes only on the far side of a two-way road.
  • The route search is back to 2 seconds, and a bug that made every calculation fail once
    the Cython module was compiled is fixed. Replayed on the Falcon, X43, 9, 49 and NX 509, a
    2 second search returns the same routes as 5 and 10 seconds.
  • Route search workers stop at the deadline rather than running on past it.

Overpass reliability

  • Each area panned into was three queries, each asking for more than it needed; adding one
    route could spend eight minutes waiting on Overpass and meet a 429 or 504 on most
    downloads. It now asks less often and asks for less.
  • When Overpass cannot be reached, the message says why rather than failing blankly.

Version and updates

  • The navbar shows the running version, and turns into "Update to x.y.z" when a newer
    release has been published on GitHub. The check is server-side and cached for six hours;
    an instance with no route to GitHub shows its version and says nothing more.
  • Changesets are stamped Relatify 1.1.0 #ff422gu and the user agent reads
    Relatify/1.1.0 #ff422gu (+…), so a changeset and a server log name the same release and
    the same build. This replaces the previous osm-relatify git#… form.

Other fixes

  • Tags typed into a relation being created survive a further download, instead of being
    replaced by the bare tags a new route starts from.
  • Ids OSM hands back are read by placeholder, so a changeset creating a route and its stop
    areas at once no longer reads the route's id as whichever relation came first.
  • Editing several variants through a route master no longer carries stale state between
    them: the calculation is cleared when a route is unloaded, and the master is re-fetched
    after an upload.
  • The navbar points at this fork, and says when a relation is loading.

Configuration

New optional variables, all with working defaults: UPDATE_CHECK_REPO,
UPDATE_CHECK_TTL, UPDATE_CHECK_RETRY_TTL. OVERPASS_MAX_DATA_AGE is now documented in
the README's configuration table as well.

Full changelog: v1.0.0...v1.1.0

1.0.0

Choose a tag to compare

@ryan-bush ryan-bush released this 13 Sep 16:20
466eebf

New

Add a stop from the map. Right-click near the route: name, stop letter, shelter,
bench. Shows the exact tags before writing them, and warns if another stop is within 50 m.

Edit a stop already in OSM. Name, local ref, shelter, bench. Clear a field to remove
the tag. If someone else changes that stop while you work, the upload stops rather than
overwriting them.

Stop positions on the road. The node where the bus halts, for new and existing stops.
Placed on the nearest route way, drawn before upload, and tagged direction=forward,
backward or both from the way your route runs — which keeps the two sides of a street
apart when both sit on the same way.

Stop areas. Creates the public_transport=stop_area relation, or completes one that
exists. A new stop position joins the relation in the same motion. Renaming a stop offers
to rename its stop position and stop area with it.

NaPTAN, for Great Britain

On by default; NAPTAN_ENABLED=0 turns it off.

  • Stops NaPTAN has and OSM lacks, ready to place with their tags filled in.
  • Missing naptan:AtcoCode, ref, indicators and bearings filled in on existing stops.
  • Disagreements decided tag by tag. The route will not upload until each is settled, and
    keeping OSM's value writes nothing.
  • Warnings for retired stops, and for a bearing saying the stop serves the other direction.

Fixed

Stop positions on the wrong side of the road. Three faults in name matching gave one
stop position to both platforms of a place, or lost it entirely — so a stop with none
looked like it already had one, and was offered nothing. On the 9 in Swindon that was 9
of 18 stops in one direction, including one paired with a platform 47 m away, across the
carriageway from the one 3 m away. Each side now keeps the node beside it.

Stop areas created twice. A place already grouped now says so and offers nothing. One
grouped twice over names both relations and leaves the merge to you. New relations are
checked against live OSM before upload.

Overpass answering wrongly without failing. A stale instance answers every query
successfully from an old snapshot; two of the three shipped instances spent September on
June data, which is why the editor kept offering to recreate stops and stop areas that
already existed. Data more than an hour old is now passed over, and a 200 carrying an
error page — or a query that gave up part way through — counts as the failure it is. The
two stale instances are gone.

Also

  • The map zooms to z21, which makes the two sides of a road easier to tell apart.
  • Changeset comments count what actually happened, and credit NaPTAN only when it
    supplied something.
  • An unchanged route is left out of the changeset, so a tags-only edit no longer bumps the
    relation version.
  • Popups stay put: the NaPTAN disagreement list no longer closes after one decision.

Settings

Setting What it does
NAPTAN_ENABLED NaPTAN suggestions and checks. On by default; 0 outside Great Britain.
OVERPASS_MAX_DATA_AGE How far behind live OSM an instance may be before it is refused. An hour by default; 0 disables the check.
OVERPASS_API_INTERPRETER Instances to use, in order. Worldwide only — a regional extract returns nothing outside its area without saying so.
STOP_AREA_SEARCH_AREA How far apart the stops of one place may be. 150 m by default.