-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathfind-alternative-trips.js
46 lines (39 loc) · 1.26 KB
/
find-alternative-trips.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'use strict'
const readCsv = require('../read-csv')
const inMemoryStore = require('../lib/in-memory-store')
const readServices = require('../read-services-and-exceptions')
const computeSchedules = require('../compute-schedules')
const findAlternativeTrips = require('../find-alternative-trips')
const timezone = 'Europe/Berlin'
const noFilter = () => true
const noFilters = {}
const readFile = (file) => {
return readCsv(require.resolve('sample-gtfs-feed/gtfs/' + file + '.txt'))
}
;(async () => {
// read services into in-memory store
const services = inMemoryStore()
for await (const [id, svc] of readServices(readFile, timezone, noFilters)) {
await services.set(id, svc)
}
// read schedules
const schedules = await computeSchedules(readFile, noFilters)
// travel times of a downtown trip of the A line
const fromId = 'airport'
const tDep = Date.parse('2019-03-05T15:24:00+01:00') / 1000
const toId = 'center'
const tArr = Date.parse('2019-03-05T15:35:00+01:00') / 1000
// find an alternative trip of the C line
const altTrips = await findAlternativeTrips(
readFile,
timezone,
services,
schedules,
)
const alts = altTrips(fromId, tDep, toId, tArr)
for await (const alt of alts) console.log(alt)
})()
.catch((err) => {
console.error(err)
process.exit(1)
})