Releases: ryan-bush/osm-relatify
Release list
1.2.0
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=platformorbus=yesgets 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_aisleways (#78)
Fixed
- Relations near a stop with an unrecognised
public_transportvalue (e.g.pole) failed to load with a 500 error (#86) - Stops tagged only
highway=bus_stop, andpublic_transport=platform+bus=yesplatforms with nohighwaytag, 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 Aand so on inlocal_refdidn'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
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
reffollows 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 taggeddirection=forward/backwardis 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 olderstop_positionrole 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:Bearingalone: 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 #ff422guand 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 previousosm-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
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. |