UNPKG

s2-tools

Version:

A collection of geospatial tools primarily designed for WGS84, Web Mercator, and S2.

115 lines 3.47 kB
import { parseCSVAsRecord } from '../../'; import { parseGtfsDate } from '../utils'; /** * Enumeration to represent day availability in the calendar. * 0 = Not available, 1 = Available */ export var GTFSDayAvailability; (function (GTFSDayAvailability) { /** 0 - Service not available on this day. */ GTFSDayAvailability[GTFSDayAvailability["NotAvailable"] = 0] = "NotAvailable"; /** 1 - Service available on this day. */ GTFSDayAvailability[GTFSDayAvailability["Available"] = 1] = "Available"; })(GTFSDayAvailability || (GTFSDayAvailability = {})); /** * # Calendar Information * * **Conditionally Required** * Defines a set of dates when service is available for one or more routes. * Required unless all dates of service are defined in `calendar_dates.txt`. */ export class GTFSCalendar { /** * **Required** * Identifies a set of dates when service is available. */ serviceId; /** * **Required** * Service availability on Mondays: 0 or 1. */ monday; /** * **Required** * Service availability on Tuesdays: 0 or 1. */ tuesday; /** * **Required** * Service availability on Wednesdays: 0 or 1. */ wednesday; /** * **Required** * Service availability on Thursdays: 0 or 1. */ thursday; /** * **Required** * Service availability on Fridays: 0 or 1. */ friday; /** * **Required** * Service availability on Saturdays: 0 or 1. */ saturday; /** * **Required** * Service availability on Sundays: 0 or 1. */ sunday; /** * **Required** * Start service day (inclusive) for the interval. Format: YYYYMMDD */ startDate; /** * **Required** * End service day (inclusive) for the interval. Format: YYYYMMDD */ endDate; /** @param data - the parsed GTFS CSV data */ constructor(data) { this.serviceId = data.service_id; this.monday = data.monday !== undefined ? parseInt(data.monday, 10) : GTFSDayAvailability.NotAvailable; this.tuesday = data.tuesday !== undefined ? parseInt(data.tuesday, 10) : GTFSDayAvailability.NotAvailable; this.wednesday = data.wednesday !== undefined ? parseInt(data.wednesday, 10) : GTFSDayAvailability.NotAvailable; this.thursday = data.thursday !== undefined ? parseInt(data.thursday, 10) : GTFSDayAvailability.NotAvailable; this.friday = data.friday !== undefined ? parseInt(data.friday, 10) : GTFSDayAvailability.NotAvailable; this.saturday = data.saturday !== undefined ? parseInt(data.saturday, 10) : GTFSDayAvailability.NotAvailable; this.sunday = data.sunday !== undefined ? parseInt(data.sunday, 10) : GTFSDayAvailability.NotAvailable; this.startDate = parseGtfsDate(data.start_date); this.endDate = parseGtfsDate(data.end_date); } } /** * @param input - the input string to parse from * @returns - an array of Calendars */ export function parseGTFSCalendars(input) { const data = parseCSVAsRecord(input); return data.map((d) => new GTFSCalendar(d)); } //# sourceMappingURL=calendar.js.map