UNPKG

nextbus-to-gtfs-rt

Version:

A script that converts the nextbus api to gtfs-rt

41 lines (31 loc) 1.07 kB
var moment = require('moment'), realtime = require('gtfs-realtime-bindings') var util = require('./util.js') module.exports = function(nextbus, callback) { var msg = util.makeMessageTemplate() nextbus.vehicleLocations(function(err, data) { if(err) { return callback(err) } var vehicles = util.ensureArray(data.vehicle); for (var i = 0; i < vehicles.length; i++) { curVehicle = vehicles[i].$; msg.entity.push(new realtime.FeedEntity({ id: 'Vehicle Position ' + i, vehicle: new realtime.VehiclePosition({ position: new realtime.Position({ latitude: curVehicle.lat, longitude: curVehicle.lon, bearing: curVehicle.heading, speed: curVehicle.speedKmHr ? parseFloat(curVehicle.speedKmHr) * 0.277778 : 0 }), timestamp: moment().unix() - parseInt(curVehicle.secsSinceReport, 10), vehicle: new realtime.VehicleDescriptor({ id: curVehicle.id }) }) })) } callback(null, msg) }) }