UNPKG

terriajs

Version:

Geospatial data visualization platform.

58 lines (56 loc) 1.88 kB
import { FeedEntity, OccupancyStatus } from "./GtfsRealtimeProtoBufReaders"; import _get from "lodash-es/get"; export default function prettyPrintGtfsEntityField( field: string, entity: FeedEntity ) { switch (field) { // TODO: Get sone of this data (eg. route short name) from static GTFS csv files instead // This probably only works for NSW case "route_short_name": { const route: string | undefined = _get(entity, "vehicle.trip.route_id"); if (route !== undefined && route.indexOf("_") + 1 > 0) { return route.substr(route.indexOf("_") + 1); } else { return ""; } } case "occupancy_status#str": { const occupancy: OccupancyStatus | undefined = _get( entity, "vehicle.occupancy_status" ); if (occupancy !== undefined && occupancy !== null) { switch (occupancy) { case OccupancyStatus.EMPTY: return "Empty"; case OccupancyStatus.MANY_SEATS_AVAILABLE: return "Many seats available"; case OccupancyStatus.FEW_SEATS_AVAILABLE: return "Few seats available"; case OccupancyStatus.STANDING_ROOM_ONLY: return "Standing room only"; case OccupancyStatus.CRUSHED_STANDING_ROOM_ONLY: return "Crushed standing room only"; case OccupancyStatus.FULL: return "Full"; case OccupancyStatus.NOT_ACCEPTING_PASSENGERS: return "Not accepting passengers"; } } break; } case "speed#km": { return (_get(entity, "vehicle.position.speed", 0) * 3.6).toFixed(2); } case "speed": { return _get(entity, "vehicle.position.speed", 0).toFixed(2); } case "bearing": { return _get(entity, "vehicle.position.bearing", 0).toFixed(2); } default: { return undefined; } } }