mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-14 23:32:20 +00:00
Draw transit vehicles as trolleybuses, cable cars, funiculars, gondolas and monorails
The transit layer knew five modes, so a trolleybus drew as a bus, a funicular as a train and a coach as a city bus. The GTFS basic route types are now modes of their own (trolleybus, cable_tram, monorail, funicular, aerial_lift), each with an icon, colour, detection tier, card word, voice name, speed ceiling and fleet model. A vehicle record may carry its route's GTFS route_type as routeType. It settles the mode after the feed's fleet hint and before its route hint, and picks the finer model (a coach for 200, a high-speed set for 101) when the type is a kind of the vehicle's mode. Retained history classifies epochs through transitModeFor too, so trails join the live vehicle. Route hints from each operator's routes.txt: Prague's trolleybus lines (51-59, 232, 275) and Petrin funicular, and the trams, trolleybuses and metro lines of Bucharest, Cluj-Napoca and Turin. A feed may also name route corrections that outrank the route type: Le Havre's routes.txt types its funicular (8-FUNI) as a bus, so it is corrected to a funicular.
This commit is contained in:
1 parent
250f0e20c3
commit
39c89d563b
32 files changed
+708
-61
No files matched your search
@@ -202,3 +202,25 @@ test('a feed fleet-number mode outranks its route mode in the epoch context', (t
|
||||
assert.equal(h.get('ttc', '4507', 100000).epochs[0].mode, 'tram');
|
||||
assert.equal(h.get('ttc', 'x1', 100000).epochs[0].mode, 'tram');
|
||||
});
|
||||
test('the epoch mode is the live mode: a route type, else hints, else the default', (t) => {
|
||||
const h = history(t);
|
||||
const pid = {
|
||||
id: 'pid',
|
||||
historyRetention: true,
|
||||
defaultMode: 'bus',
|
||||
routeMode: (route) => (route === 'L22' ? 'tram' : 'unknown'),
|
||||
};
|
||||
h.ingest(
|
||||
pid,
|
||||
[
|
||||
row(100000, 'a', { routeId: 'L58', routeType: 11 }),
|
||||
row(100000, 'b', { routeId: 'L22' }),
|
||||
row(100000, 'c', { routeId: 'L9999' }),
|
||||
],
|
||||
100000,
|
||||
);
|
||||
assert.equal(h.get('pid', 'a', 100000).epochs[0].mode, 'trolleybus');
|
||||
assert.equal(h.get('pid', 'b', 100000).epochs[0].mode, 'tram');
|
||||
// A hint that knows nothing leaves the default, as the live layer does.
|
||||
assert.equal(h.get('pid', 'c', 100000).epochs[0].mode, 'bus');
|
||||
});
|
||||
Reference in new issue
Block a user