Skip to content

Instantly share code, notes, and snippets.

@mikekavouras
Created September 4, 2014 19:45
Show Gist options
  • Save mikekavouras/152f5b45c253cf5b4243 to your computer and use it in GitHub Desktop.
Save mikekavouras/152f5b45c253cf5b4243 to your computer and use it in GitHub Desktop.
var data = {
"result": {
"lat": "40.693219",
"lng": "-73.989998",
"trains": [
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:20:30-04:00",
"train_id": "02 1408 241/FLA",
"line": "2",
"trip_id": "084800_2..S01X023",
"start_date": "20140904",
"departure_time": "2014-09-04T15:20:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:25:21-04:00",
"train_id": "02 1417 241/FLA",
"line": "2",
"trip_id": "085700_2..S01X023",
"start_date": "20140904",
"departure_time": "2014-09-04T15:25:21-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:33:49-04:00",
"train_id": "02 1424+ 241/FLA",
"line": "2",
"trip_id": "086450_2..S01X023",
"start_date": "20140904",
"departure_time": "2014-09-04T15:33:49-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:41:17-04:00",
"train_id": "02 1433 241/FLA",
"line": "2",
"trip_id": "087300_2..S01X023",
"start_date": "20140904",
"departure_time": "2014-09-04T15:41:17-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:04:34-04:00",
"train_id": "02 1440+ 241/FLA",
"line": "2",
"trip_id": "088050_2..S01X023",
"start_date": "20140904",
"departure_time": "2014-09-04T16:04:34-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:04:57-04:00",
"train_id": "02 1450+ 241/FLA",
"line": "2",
"trip_id": "089050_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:04:57-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:20:50-04:00",
"train_id": "02 1457+ FLA/241",
"line": "2",
"trip_id": "089750_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:20:50-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:11:26-04:00",
"train_id": "02 1458 241/FLA",
"line": "2",
"trip_id": "089800_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:11:26-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:27:31-04:00",
"train_id": "02 1504 FLA/241",
"line": "2",
"trip_id": "090400_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:27:31-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:13:30-04:00",
"train_id": "02 1505+ 241/FLA",
"line": "2",
"trip_id": "090550_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:13:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:24:27-04:00",
"train_id": "02 1513+ 241/FLA",
"line": "2",
"trip_id": "091350_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:24:27-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:35:25-04:00",
"train_id": "02 1513+ FLA/241",
"line": "2",
"trip_id": "091350_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:35:25-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:44:30-04:00",
"train_id": "02 1521+ FLA/241",
"line": "2",
"trip_id": "092150_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:44:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:37:30-04:00",
"train_id": "02 1523 241/FLA",
"line": "2",
"trip_id": "092300_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:37:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:52:30-04:00",
"train_id": "02 1527 FLA/241",
"line": "2",
"trip_id": "092700_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:52:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:44:30-04:00",
"train_id": "02 1529+ 241/FLA",
"line": "2",
"trip_id": "092950_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:44:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:56:30-04:00",
"train_id": "02 1533 FLA/241",
"line": "2",
"trip_id": "093300_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:56:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:51:30-04:00",
"train_id": "02 1538 241/FLA",
"line": "2",
"trip_id": "093800_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:51:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T16:04:30-04:00",
"train_id": "02 1541+ FLA/241",
"line": "2",
"trip_id": "094150_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:04:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:58:30-04:00",
"train_id": "02 1544+ 241/FLA",
"line": "2",
"trip_id": "094450_2..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:58:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T16:12:30-04:00",
"train_id": "02 1547+ FLA/241",
"line": "2",
"trip_id": "094750_2..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:12:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T09:18:00-04:00",
"train_id": "03 0837+ 135/NLT",
"line": "3",
"trip_id": "051750_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T09:18:00-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:27:46-04:00",
"train_id": "03 1445+ 148/NLT",
"line": "3",
"trip_id": "088550_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:27:46-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:22:09-04:00",
"train_id": "03 1454 NLT/148",
"line": "3",
"trip_id": "089400_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:22:09-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:35:08-04:00",
"train_id": "03 1455 148/NLT",
"line": "3",
"trip_id": "089500_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:35:08-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:31:39-04:00",
"train_id": "03 1502 NLT/148",
"line": "3",
"trip_id": "090200_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:31:39-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:44:22-04:00",
"train_id": "03 1504 148/NLT",
"line": "3",
"trip_id": "090400_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:44:22-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:37:58-04:00",
"train_id": "03 1510 NLT/148",
"line": "3",
"trip_id": "091000_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:37:58-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:51:32-04:00",
"train_id": "03 1512 148/NLT",
"line": "3",
"trip_id": "091200_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:51:32-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:44:37-04:00",
"train_id": "03 1516 NLT/148",
"line": "3",
"trip_id": "091600_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:44:37-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T15:57:52-04:00",
"train_id": "03 1518 148/NLT",
"line": "3",
"trip_id": "091800_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:57:52-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:01:30-04:00",
"train_id": "03 1522 148/NLT",
"line": "3",
"trip_id": "092200_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:01:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T15:52:30-04:00",
"train_id": "03 1524 NLT/148",
"line": "3",
"trip_id": "092400_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T15:52:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:09:30-04:00",
"train_id": "03 1527+ 148/NLT",
"line": "3",
"trip_id": "092750_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:09:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T16:00:30-04:00",
"train_id": "03 1531 NLT/148",
"line": "3",
"trip_id": "093100_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:00:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:17:30-04:00",
"train_id": "03 1536 148/NLT",
"line": "3",
"trip_id": "093600_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:17:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T16:08:30-04:00",
"train_id": "03 1540 NLT/148",
"line": "3",
"trip_id": "094000_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:08:30-04:00"
},
{
"direction": 3,
"scheduled_track": "2",
"arrival_time": "2014-09-04T16:25:30-04:00",
"train_id": "03 1544 148/NLT",
"line": "3",
"trip_id": "094400_3..S01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:25:30-04:00"
},
{
"direction": 1,
"scheduled_track": "3",
"arrival_time": "2014-09-04T16:16:30-04:00",
"train_id": "03 1548 NLT/148",
"line": "3",
"trip_id": "094800_3..N01R",
"start_date": "20140904",
"departure_time": "2014-09-04T16:16:30-04:00"
}
],
"id": "232",
"name": "Borough Hall"
}
}
function addMinutes(date, minutes) {
return new Date(date.getTime() + minutes*60000);
}
function subtractMinutes(date, minutes) {
return new Date(date.getTime() - minutes*60000);
}
var trains = data.result.trains;
var north = trains.filter(function(t) { return t.direction === 1; });
var relevant = north.filter(function(t) { return new Date(t.arrival_time) > addMinutes(new Date(), 12)});
var sorted = relevant.sort();
var soonest = sorted[0]
var t = subtractMinutes(new Date(soonest.arrival_time), 12);
var times = [];
for (var i = 0; i < Math.min(3, sorted.length); i++) {
var date = new Date(sorted[i].arrival_time);
var time = {
hour: date.getHours(),
minute: date.getMinutes()
}
times.push(time);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment