From ae5dad8720ab9801a3960e81773a527c54ea565b Mon Sep 17 00:00:00 2001 From: Damon Aw Date: Thu, 6 Jul 2017 23:02:35 -0400 Subject: [PATCH] Make some progress in getting dialog and MTA data ready --- data/gtfs-realtime.proto | 640 +++++++++++++++++++++++++++++++++ data/nyc-subway.proto | 134 +++++++ data/slots/station-names.json | 1 + data/subway-stops.json | 495 +++++++++++++++++++++++++ index.js | 15 +- package.json | 4 + scripts/clean-station-names.js | 13 + values/subway-stops.js | 6 + yarn.lock | 93 ++++- 9 files changed, 1393 insertions(+), 8 deletions(-) create mode 100644 data/gtfs-realtime.proto create mode 100644 data/nyc-subway.proto create mode 100644 data/slots/station-names.json create mode 100644 data/subway-stops.json create mode 100644 scripts/clean-station-names.js create mode 100644 values/subway-stops.js diff --git a/data/gtfs-realtime.proto b/data/gtfs-realtime.proto new file mode 100644 index 0000000..3d65f1e --- /dev/null +++ b/data/gtfs-realtime.proto @@ -0,0 +1,640 @@ +// Copyright 2015 The GTFS Specifications Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Protocol definition file for GTFS-realtime. +// +// GTFS-realtime lets transit agencies provide consumers with realtime +// information about disruptions to their service (stations closed, lines not +// operating, important delays etc), location of their vehicles and expected +// arrival times. +// +// This protocol is published at: +// https://developers.google.com/transit/gtfs-realtime/ + +syntax = "proto2"; +option java_package = "com.google.transit.realtime"; +package transit_realtime; + +// The contents of a feed message. +// A feed is a continuous stream of feed messages. Each message in the stream is +// obtained as a response to an appropriate HTTP GET request. +// A realtime feed is always defined with relation to an existing GTFS feed. +// All the entity ids are resolved with respect to the GTFS feed. +// +// A feed depends on some external configuration: +// - The corresponding GTFS feed. +// - Feed application (updates, positions or alerts). A feed should contain only +// items of one specified application; all the other entities will be ignored. +// - Polling frequency +message FeedMessage { + + // Metadata about this feed and feed message. + required FeedHeader header = 1; + + // Contents of the feed. + repeated FeedEntity entity = 2; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// Metadata about a feed, included in feed messages. +message FeedHeader { + // Version of the feed specification. + // The current version is 1.0. + required string gtfs_realtime_version = 1; + + // Determines whether the current fetch is incremental. Currently, + // DIFFERENTIAL mode is unsupported and behavior is unspecified for feeds + // that use this mode. There are discussions on the GTFS-realtime mailing + // list around fully specifying the behavior of DIFFERENTIAL mode and the + // documentation will be updated when those discussions are finalized. + enum Incrementality { + FULL_DATASET = 0; + DIFFERENTIAL = 1; + } + optional Incrementality incrementality = 2 [default = FULL_DATASET]; + + // This timestamp identifies the moment when the content of this feed has been + // created (in server time). In POSIX time (i.e., number of seconds since + // January 1st 1970 00:00:00 UTC). + optional uint64 timestamp = 3; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// A definition (or update) of an entity in the transit feed. +message FeedEntity { + // The ids are used only to provide incrementality support. The id should be + // unique within a FeedMessage. Consequent FeedMessages may contain + // FeedEntities with the same id. In case of a DIFFERENTIAL update the new + // FeedEntity with some id will replace the old FeedEntity with the same id + // (or delete it - see is_deleted below). + // The actual GTFS entities (e.g. stations, routes, trips) referenced by the + // feed must be specified by explicit selectors (see EntitySelector below for + // more info). + required string id = 1; + + // Whether this entity is to be deleted. Relevant only for incremental + // fetches. + optional bool is_deleted = 2 [default = false]; + + // Data about the entity itself. Exactly one of the following fields must be + // present (unless the entity is being deleted). + optional TripUpdate trip_update = 3; + optional VehiclePosition vehicle = 4; + optional Alert alert = 5; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// +// Entities used in the feed. +// + +// Realtime update of the progress of a vehicle along a trip. +// Depending on the value of ScheduleRelationship, a TripUpdate can specify: +// - A trip that proceeds along the schedule. +// - A trip that proceeds along a route but has no fixed schedule. +// - A trip that have been added or removed with regard to schedule. +// +// The updates can be for future, predicted arrival/departure events, or for +// past events that already occurred. +// Normally, updates should get more precise and more certain (see +// uncertainty below) as the events gets closer to current time. +// Even if that is not possible, the information for past events should be +// precise and certain. In particular, if an update points to time in the past +// but its update's uncertainty is not 0, the client should conclude that the +// update is a (wrong) prediction and that the trip has not completed yet. +// +// Note that the update can describe a trip that is already completed. +// To this end, it is enough to provide an update for the last stop of the trip. +// If the time of that is in the past, the client will conclude from that that +// the whole trip is in the past (it is possible, although inconsequential, to +// also provide updates for preceding stops). +// This option is most relevant for a trip that has completed ahead of schedule, +// but according to the schedule, the trip is still proceeding at the current +// time. Removing the updates for this trip could make the client assume +// that the trip is still proceeding. +// Note that the feed provider is allowed, but not required, to purge past +// updates - this is one case where this would be practically useful. +message TripUpdate { + // The Trip that this message applies to. There can be at most one + // TripUpdate entity for each actual trip instance. + // If there is none, that means there is no prediction information available. + // It does *not* mean that the trip is progressing according to schedule. + required TripDescriptor trip = 1; + + // Additional information on the vehicle that is serving this trip. + optional VehicleDescriptor vehicle = 3; + + // Timing information for a single predicted event (either arrival or + // departure). + // Timing consists of delay and/or estimated time, and uncertainty. + // - delay should be used when the prediction is given relative to some + // existing schedule in GTFS. + // - time should be given whether there is a predicted schedule or not. If + // both time and delay are specified, time will take precedence + // (although normally, time, if given for a scheduled trip, should be + // equal to scheduled time in GTFS + delay). + // + // Uncertainty applies equally to both time and delay. + // The uncertainty roughly specifies the expected error in true delay (but + // note, we don't yet define its precise statistical meaning). It's possible + // for the uncertainty to be 0, for example for trains that are driven under + // computer timing control. + message StopTimeEvent { + // Delay (in seconds) can be positive (meaning that the vehicle is late) or + // negative (meaning that the vehicle is ahead of schedule). Delay of 0 + // means that the vehicle is exactly on time. + optional int32 delay = 1; + + // Event as absolute time. + // In Unix time (i.e., number of seconds since January 1st 1970 00:00:00 + // UTC). + optional int64 time = 2; + + // If uncertainty is omitted, it is interpreted as unknown. + // If the prediction is unknown or too uncertain, the delay (or time) field + // should be empty. In such case, the uncertainty field is ignored. + // To specify a completely certain prediction, set its uncertainty to 0. + optional int32 uncertainty = 3; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features + // and modifications to the spec. + extensions 1000 to 1999; + } + + // Realtime update for arrival and/or departure events for a given stop on a + // trip. Updates can be supplied for both past and future events. + // The producer is allowed, although not required, to drop past events. + message StopTimeUpdate { + // The update is linked to a specific stop either through stop_sequence or + // stop_id, so one of the fields below must necessarily be set. + // See the documentation in TripDescriptor for more information. + + // Must be the same as in stop_times.txt in the corresponding GTFS feed. + optional uint32 stop_sequence = 1; + // Must be the same as in stops.txt in the corresponding GTFS feed. + optional string stop_id = 4; + + optional StopTimeEvent arrival = 2; + optional StopTimeEvent departure = 3; + + // The relation between this StopTime and the static schedule. + enum ScheduleRelationship { + // The vehicle is proceeding in accordance with its static schedule of + // stops, although not necessarily according to the times of the schedule. + // At least one of arrival and departure must be provided. If the schedule + // for this stop contains both arrival and departure times then so must + // this update. + SCHEDULED = 0; + + // The stop is skipped, i.e., the vehicle will not stop at this stop. + // Arrival and departure are optional. + SKIPPED = 1; + + // No data is given for this stop. The main intention for this value is to + // give the predictions only for part of a trip, i.e., if the last update + // for a trip has a NO_DATA specifier, then StopTimes for the rest of the + // stops in the trip are considered to be unspecified as well. + // Neither arrival nor departure should be supplied. + NO_DATA = 2; + } + optional ScheduleRelationship schedule_relationship = 5 + [default = SCHEDULED]; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features + // and modifications to the spec. + extensions 1000 to 1999; + } + + // Updates to StopTimes for the trip (both future, i.e., predictions, and in + // some cases, past ones, i.e., those that already happened). + // The updates must be sorted by stop_sequence, and apply for all the + // following stops of the trip up to the next specified one. + // + // Example 1: + // For a trip with 20 stops, a StopTimeUpdate with arrival delay and departure + // delay of 0 for stop_sequence of the current stop means that the trip is + // exactly on time. + // + // Example 2: + // For the same trip instance, 3 StopTimeUpdates are provided: + // - delay of 5 min for stop_sequence 3 + // - delay of 1 min for stop_sequence 8 + // - delay of unspecified duration for stop_sequence 10 + // This will be interpreted as: + // - stop_sequences 3,4,5,6,7 have delay of 5 min. + // - stop_sequences 8,9 have delay of 1 min. + // - stop_sequences 10,... have unknown delay. + repeated StopTimeUpdate stop_time_update = 2; + + // Moment at which the vehicle's real-time progress was measured. In POSIX + // time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC). + optional uint64 timestamp = 4; + + // The current schedule deviation for the trip. Delay should only be + // specified when the prediction is given relative to some existing schedule + // in GTFS. + // + // Delay (in seconds) can be positive (meaning that the vehicle is late) or + // negative (meaning that the vehicle is ahead of schedule). Delay of 0 + // means that the vehicle is exactly on time. + // + // Delay information in StopTimeUpdates take precedent of trip-level delay + // information, such that trip-level delay is only propagated until the next + // stop along the trip with a StopTimeUpdate delay value specified. + // + // Feed providers are strongly encouraged to provide a TripUpdate.timestamp + // value indicating when the delay value was last updated, in order to + // evaluate the freshness of the data. + // + // NOTE: This field is still experimental, and subject to change. It may be + // formally adopted in the future. + optional int32 delay = 5; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// Realtime positioning information for a given vehicle. +message VehiclePosition { + // The Trip that this vehicle is serving. + // Can be empty or partial if the vehicle can not be identified with a given + // trip instance. + optional TripDescriptor trip = 1; + + // Additional information on the vehicle that is serving this trip. + optional VehicleDescriptor vehicle = 8; + + // Current position of this vehicle. + optional Position position = 2; + + // The stop sequence index of the current stop. The meaning of + // current_stop_sequence (i.e., the stop that it refers to) is determined by + // current_status. + // If current_status is missing IN_TRANSIT_TO is assumed. + optional uint32 current_stop_sequence = 3; + // Identifies the current stop. The value must be the same as in stops.txt in + // the corresponding GTFS feed. + optional string stop_id = 7; + + enum VehicleStopStatus { + // The vehicle is just about to arrive at the stop (on a stop + // display, the vehicle symbol typically flashes). + INCOMING_AT = 0; + + // The vehicle is standing at the stop. + STOPPED_AT = 1; + + // The vehicle has departed and is in transit to the next stop. + IN_TRANSIT_TO = 2; + } + // The exact status of the vehicle with respect to the current stop. + // Ignored if current_stop_sequence is missing. + optional VehicleStopStatus current_status = 4 [default = IN_TRANSIT_TO]; + + // Moment at which the vehicle's position was measured. In POSIX time + // (i.e., number of seconds since January 1st 1970 00:00:00 UTC). + optional uint64 timestamp = 5; + + // Congestion level that is affecting this vehicle. + enum CongestionLevel { + UNKNOWN_CONGESTION_LEVEL = 0; + RUNNING_SMOOTHLY = 1; + STOP_AND_GO = 2; + CONGESTION = 3; + SEVERE_CONGESTION = 4; // People leaving their cars. + } + optional CongestionLevel congestion_level = 6; + + // The degree of passenger occupancy of the vehicle. This field is still + // experimental, and subject to change. It may be formally adopted in the + // future. + enum OccupancyStatus { + // The vehicle is considered empty by most measures, and has few or no + // passengers onboard, but is still accepting passengers. + EMPTY = 0; + + // The vehicle has a relatively large percentage of seats available. + // What percentage of free seats out of the total seats available is to be + // considered large enough to fall into this category is determined at the + // discretion of the producer. + MANY_SEATS_AVAILABLE = 1; + + // The vehicle has a relatively small percentage of seats available. + // What percentage of free seats out of the total seats available is to be + // considered small enough to fall into this category is determined at the + // discretion of the feed producer. + FEW_SEATS_AVAILABLE = 2; + + // The vehicle can currently accommodate only standing passengers. + STANDING_ROOM_ONLY = 3; + + // The vehicle can currently accommodate only standing passengers + // and has limited space for them. + CRUSHED_STANDING_ROOM_ONLY = 4; + + // The vehicle is considered full by most measures, but may still be + // allowing passengers to board. + FULL = 5; + + // The vehicle is not accepting additional passengers. + NOT_ACCEPTING_PASSENGERS = 6; + + } + optional OccupancyStatus occupancy_status = 9; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// An alert, indicating some sort of incident in the public transit network. +message Alert { + // Time when the alert should be shown to the user. If missing, the + // alert will be shown as long as it appears in the feed. + // If multiple ranges are given, the alert will be shown during all of them. + repeated TimeRange active_period = 1; + + // Entities whose users we should notify of this alert. + repeated EntitySelector informed_entity = 5; + + // Cause of this alert. + enum Cause { + UNKNOWN_CAUSE = 1; + OTHER_CAUSE = 2; // Not machine-representable. + TECHNICAL_PROBLEM = 3; + STRIKE = 4; // Public transit agency employees stopped working. + DEMONSTRATION = 5; // People are blocking the streets. + ACCIDENT = 6; + HOLIDAY = 7; + WEATHER = 8; + MAINTENANCE = 9; + CONSTRUCTION = 10; + POLICE_ACTIVITY = 11; + MEDICAL_EMERGENCY = 12; + } + optional Cause cause = 6 [default = UNKNOWN_CAUSE]; + + // What is the effect of this problem on the affected entity. + enum Effect { + NO_SERVICE = 1; + REDUCED_SERVICE = 2; + + // We don't care about INsignificant delays: they are hard to detect, have + // little impact on the user, and would clutter the results as they are too + // frequent. + SIGNIFICANT_DELAYS = 3; + + DETOUR = 4; + ADDITIONAL_SERVICE = 5; + MODIFIED_SERVICE = 6; + OTHER_EFFECT = 7; + UNKNOWN_EFFECT = 8; + STOP_MOVED = 9; + } + optional Effect effect = 7 [default = UNKNOWN_EFFECT]; + + // The URL which provides additional information about the alert. + optional TranslatedString url = 8; + + // Alert header. Contains a short summary of the alert text as plain-text. + optional TranslatedString header_text = 10; + + // Full description for the alert as plain-text. The information in the + // description should add to the information of the header. + optional TranslatedString description_text = 11; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features + // and modifications to the spec. + extensions 1000 to 1999; +} + +// +// Low level data structures used above. +// + +// A time interval. The interval is considered active at time 't' if 't' is +// greater than or equal to the start time and less than the end time. +message TimeRange { + // Start time, in POSIX time (i.e., number of seconds since January 1st 1970 + // 00:00:00 UTC). + // If missing, the interval starts at minus infinity. + optional uint64 start = 1; + + // End time, in POSIX time (i.e., number of seconds since January 1st 1970 + // 00:00:00 UTC). + // If missing, the interval ends at plus infinity. + optional uint64 end = 2; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// A position. +message Position { + // Degrees North, in the WGS-84 coordinate system. + required float latitude = 1; + + // Degrees East, in the WGS-84 coordinate system. + required float longitude = 2; + + // Bearing, in degrees, clockwise from North, i.e., 0 is North and 90 is East. + // This can be the compass bearing, or the direction towards the next stop + // or intermediate location. + // This should not be direction deduced from the sequence of previous + // positions, which can be computed from previous data. + optional float bearing = 3; + + // Odometer value, in meters. + optional double odometer = 4; + // Momentary speed measured by the vehicle, in meters per second. + optional float speed = 5; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// A descriptor that identifies an instance of a GTFS trip, or all instances of +// a trip along a route. +// - To specify a single trip instance, the trip_id (and if necessary, +// start_time) is set. If route_id is also set, then it should be same as one +// that the given trip corresponds to. +// - To specify all the trips along a given route, only the route_id should be +// set. Note that if the trip_id is not known, then stop sequence ids in +// TripUpdate are not sufficient, and stop_ids must be provided as well. In +// addition, absolute arrival/departure times must be provided. +message TripDescriptor { + // The trip_id from the GTFS feed that this selector refers to. + // For non frequency-based trips, this field is enough to uniquely identify + // the trip. For frequency-based trip, start_time and start_date might also be + // necessary. + optional string trip_id = 1; + + // The route_id from the GTFS that this selector refers to. + optional string route_id = 5; + + // The direction_id from the GTFS feed trips.txt file, indicating the + // direction of travel for trips this selector refers to. This field is + // still experimental, and subject to change. It may be formally adopted in + // the future. + optional uint32 direction_id = 6; + + // The initially scheduled start time of this trip instance. + // When the trip_id corresponds to a non-frequency-based trip, this field + // should either be omitted or be equal to the value in the GTFS feed. When + // the trip_id correponds to a frequency-based trip, the start_time must be + // specified for trip updates and vehicle positions. If the trip corresponds + // to exact_times=1 GTFS record, then start_time must be some multiple + // (including zero) of headway_secs later than frequencies.txt start_time for + // the corresponding time period. If the trip corresponds to exact_times=0, + // then its start_time may be arbitrary, and is initially expected to be the + // first departure of the trip. Once established, the start_time of this + // frequency-based trip should be considered immutable, even if the first + // departure time changes -- that time change may instead be reflected in a + // StopTimeUpdate. + // Format and semantics of the field is same as that of + // GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35. + optional string start_time = 2; + // The scheduled start date of this trip instance. + // Must be provided to disambiguate trips that are so late as to collide with + // a scheduled trip on a next day. For example, for a train that departs 8:00 + // and 20:00 every day, and is 12 hours late, there would be two distinct + // trips on the same time. + // This field can be provided but is not mandatory for schedules in which such + // collisions are impossible - for example, a service running on hourly + // schedule where a vehicle that is one hour late is not considered to be + // related to schedule anymore. + // In YYYYMMDD format. + optional string start_date = 3; + + // The relation between this trip and the static schedule. If a trip is done + // in accordance with temporary schedule, not reflected in GTFS, then it + // shouldn't be marked as SCHEDULED, but likely as ADDED. + enum ScheduleRelationship { + // Trip that is running in accordance with its GTFS schedule, or is close + // enough to the scheduled trip to be associated with it. + SCHEDULED = 0; + + // An extra trip that was added in addition to a running schedule, for + // example, to replace a broken vehicle or to respond to sudden passenger + // load. + ADDED = 1; + + // A trip that is running with no schedule associated to it, for example, if + // there is no schedule at all. + UNSCHEDULED = 2; + + // A trip that existed in the schedule but was removed. + CANCELED = 3; + } + optional ScheduleRelationship schedule_relationship = 4; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// Identification information for the vehicle performing the trip. +message VehicleDescriptor { + // Internal system identification of the vehicle. Should be unique per + // vehicle, and can be used for tracking the vehicle as it proceeds through + // the system. + optional string id = 1; + + // User visible label, i.e., something that must be shown to the passenger to + // help identify the correct vehicle. + optional string label = 2; + + // The license plate of the vehicle. + optional string license_plate = 3; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// A selector for an entity in a GTFS feed. +message EntitySelector { + // The values of the fields should correspond to the appropriate fields in the + // GTFS feed. + // At least one specifier must be given. If several are given, then the + // matching has to apply to all the given specifiers. + optional string agency_id = 1; + optional string route_id = 2; + // corresponds to route_type in GTFS. + optional int32 route_type = 3; + optional TripDescriptor trip = 4; + optional string stop_id = 5; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} + +// An internationalized message containing per-language versions of a snippet of +// text or a URL. +// One of the strings from a message will be picked up. The resolution proceeds +// as follows: +// 1. If the UI language matches the language code of a translation, +// the first matching translation is picked. +// 2. If a default UI language (e.g., English) matches the language code of a +// translation, the first matching translation is picked. +// 3. If some translation has an unspecified language code, that translation is +// picked. +message TranslatedString { + message Translation { + // A UTF-8 string containing the message. + required string text = 1; + // BCP-47 language code. Can be omitted if the language is unknown or if + // no i18n is done at all for the feed. At most one translation is + // allowed to have an unspecified language tag. + optional string language = 2; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; + } + // At least one translation must be provided. + repeated Translation translation = 1; + + // The extensions namespace allows 3rd-party developers to extend the + // GTFS-realtime specification in order to add and evaluate new features and + // modifications to the spec. + extensions 1000 to 1999; +} diff --git a/data/nyc-subway.proto b/data/nyc-subway.proto new file mode 100644 index 0000000..fad3784 --- /dev/null +++ b/data/nyc-subway.proto @@ -0,0 +1,134 @@ +// +// NYCT Subway extensions for the GTFS-realtime protocol. +// +option java_package = "com.google.transit.realtime"; + +import "gtfs-realtime.proto"; + +message TripReplacementPeriod { + // The replacement period is for this route + optional string route_id = 1; + // The start time is omitted, the end time is currently now + 30 minutes for + // all routes of the A division + optional transit_realtime.TimeRange replacement_period = 2; +} + +// NYCT Subway extensions for the feed header +message NyctFeedHeader { + // Version of the NYCT Subway extensions + // The current version is 1.0 + required string nyct_subway_version = 1; + // For the NYCT Subway, the GTFS-realtime feed replaces any scheduled + // trip within the trip_replacement_period. + // This feed is a full dataset, it contains all trips starting + // in the trip_replacement_period. If a trip from the static GTFS is not + // found in the GTFS-realtime feed, it should be considered as cancelled. + // The replacement period can be different for each route, so here is + // a list of the routes where the trips in the feed replace all + // scheduled trips within the replacement period. + repeated TripReplacementPeriod trip_replacement_period = 2; +} + +extend transit_realtime.FeedHeader { + optional NyctFeedHeader nyct_feed_header = 1001; +} + +// NYCT Subway extensions for the trip descriptor +message NyctTripDescriptor { + // The nyct_train_id is meant for internal use only. It provides an + // easy way to associated GTFS-realtime trip identifiers with NYCT rail + // operations identifier + // + // The ATS office system assigns unique train identification (Train ID) to + // each train operating within or ready to enter the mainline of the + // monitored territory. An example of this is 06 0123+ PEL/BBR and is decoded + // as follows: + // + // The first character represents the trip type designator. 0 identifies a + // scheduled revenue trip. Other revenue trip values that are a result of a + // change to the base schedule include; [= reroute], [/ skip stop], [$ turn + // train] also known as shortly lined service. + // + // The second character 6 represents the trip line i.e. number 6 train The + // third set of characters identify the decoded origin time. The last + // character may be blank "on the whole minute" or + "30 seconds" + // + // Note: Origin times will not change when there is a trip type change. This + // is followed by a three character "Origin Location" / "Destination + // Location" + optional string train_id = 1; + + // This trip has been assigned to a physical train. If true, this trip is + // already underway or most likely will depart shortly. + // + // Train Assignment is a function of the Automatic Train Supervision (ATS) + // office system used by NYCT Rail Operations to monitor and track train + // movements. ATS provides the ability to "assign" the nyct_train_id + // attribute when a physical train is at its origin terminal. These assigned + // trips have the is_assigned field set in the TripDescriptor. + // + // When a train is at a terminal but has not been given a work program it is + // declared unassigned and is tagged as such. Unassigned trains can be moved + // to a storage location or assigned a nyct_train_id when a determination for + // service is made. + optional bool is_assigned = 2; + + // The direction the train is moving. + enum Direction { + NORTH = 1; + EAST = 2; + SOUTH = 3; + WEST = 4; + } + // Uptown and Bronx-bound trains are moving NORTH. + // Times Square Shuttle to Grand Central is also northbound. + // + // Downtown and Brooklyn-bound trains are moving SOUTH. + // Times Square Shuttle to Times Square is also southbound. + // + // EAST and WEST are not used currently. + optional Direction direction = 3; +} + +extend transit_realtime.TripDescriptor { + optional NyctTripDescriptor nyct_trip_descriptor = 1001; +} + +// NYCT Subway extensions for the stop time update +message NyctStopTimeUpdate { + // Provides the planned station arrival track. The following is the Manhattan + // track configurations: + // 1: southbound local + // 2: southbound express + // 3: northbound express + // 4: northbound local + // + // In the Bronx (except Dyre Ave line) + // M: bi-directional express (in the AM express to Manhattan, in the PM + // express away). + // + // The Dyre Ave line is configured: + // 1: southbound + // 2: northbound + // 3: bi-directional + optional string scheduled_track = 1; + + // This is the actual track that the train is operating on and can be used to + // determine if a train is operating according to its current schedule + // (plan). + // + // The actual track is known only shortly before the train reaches a station, + // typically not before it leaves the previous station. Therefore, the NYCT + // feed sets this field only for the first station of the remaining trip. + // + // Different actual and scheduled track is the result of manually rerouting a + // train off it scheduled path. When this occurs, prediction data may become + // unreliable since the train is no longer operating in accordance to its + // schedule. The rules engine for the 'countdown' clocks will remove this + // train from all schedule stations. + optional string actual_track = 2; +} + +extend transit_realtime.TripUpdate.StopTimeUpdate { + optional NyctStopTimeUpdate nyct_stop_time_update = 1001; +} diff --git a/data/slots/station-names.json b/data/slots/station-names.json new file mode 100644 index 0000000..e360b85 --- /dev/null +++ b/data/slots/station-names.json @@ -0,0 +1 @@ +[{"id":null,"name":{"value":"Astoria - Ditmars Blvd","synonyms":[]}},{"id":null,"name":{"value":"Astoria Blvd","synonyms":[]}},{"id":null,"name":{"value":"30 Av","synonyms":[]}},{"id":null,"name":{"value":"Broadway","synonyms":[]}},{"id":null,"name":{"value":"36 Av","synonyms":[]}},{"id":null,"name":{"value":"39 Av","synonyms":[]}},{"id":null,"name":{"value":"Lexington Av/59 St","synonyms":[]}},{"id":null,"name":{"value":"5 Av/59 St","synonyms":[]}},{"id":null,"name":{"value":"57 St - 7 Av","synonyms":[]}},{"id":null,"name":{"value":"49 St","synonyms":[]}},{"id":null,"name":{"value":"Times Sq - 42 St","synonyms":[]}},{"id":null,"name":{"value":"34 St - Herald Sq","synonyms":[]}},{"id":null,"name":{"value":"28 St","synonyms":[]}},{"id":null,"name":{"value":"23 St","synonyms":[]}},{"id":null,"name":{"value":"14 St - Union Sq","synonyms":[]}},{"id":null,"name":{"value":"8 St - NYU","synonyms":[]}},{"id":null,"name":{"value":"Prince St","synonyms":[]}},{"id":null,"name":{"value":"Canal St","synonyms":[]}},{"id":null,"name":{"value":"City Hall","synonyms":[]}},{"id":null,"name":{"value":"Cortlandt St","synonyms":[]}},{"id":null,"name":{"value":"Rector St","synonyms":[]}},{"id":null,"name":{"value":"Whitehall St","synonyms":[]}},{"id":null,"name":{"value":"Court St","synonyms":[]}},{"id":null,"name":{"value":"Jay St - MetroTech","synonyms":[]}},{"id":null,"name":{"value":"DeKalb Av","synonyms":[]}},{"id":null,"name":{"value":"Atlantic Av - Barclays Ctr","synonyms":[]}},{"id":null,"name":{"value":"Union St","synonyms":[]}},{"id":null,"name":{"value":"9 St","synonyms":[]}},{"id":null,"name":{"value":"Prospect Av","synonyms":[]}},{"id":null,"name":{"value":"25 St","synonyms":[]}},{"id":null,"name":{"value":"36 St","synonyms":[]}},{"id":null,"name":{"value":"45 St","synonyms":[]}},{"id":null,"name":{"value":"53 St","synonyms":[]}},{"id":null,"name":{"value":"59 St","synonyms":[]}},{"id":null,"name":{"value":"Bay Ridge Av","synonyms":[]}},{"id":null,"name":{"value":"77 St","synonyms":[]}},{"id":null,"name":{"value":"86 St","synonyms":[]}},{"id":null,"name":{"value":"Bay Ridge - 95 St","synonyms":[]}},{"id":null,"name":{"value":"7 Av","synonyms":[]}},{"id":null,"name":{"value":"Prospect Park","synonyms":[]}},{"id":null,"name":{"value":"Parkside Av","synonyms":[]}},{"id":null,"name":{"value":"Church Av","synonyms":[]}},{"id":null,"name":{"value":"Beverley Rd","synonyms":[]}},{"id":null,"name":{"value":"Cortelyou Rd","synonyms":[]}},{"id":null,"name":{"value":"Newkirk Plaza","synonyms":[]}},{"id":null,"name":{"value":"Avenue H","synonyms":[]}},{"id":null,"name":{"value":"Avenue J","synonyms":[]}},{"id":null,"name":{"value":"Avenue M","synonyms":[]}},{"id":null,"name":{"value":"Kings Hwy","synonyms":[]}},{"id":null,"name":{"value":"Avenue U","synonyms":[]}},{"id":null,"name":{"value":"Neck Rd","synonyms":[]}},{"id":null,"name":{"value":"Sheepshead Bay","synonyms":[]}},{"id":null,"name":{"value":"Brighton Beach","synonyms":[]}},{"id":null,"name":{"value":"Ocean Pkwy","synonyms":[]}},{"id":null,"name":{"value":"W 8 St - NY Aquarium","synonyms":[]}},{"id":null,"name":{"value":"Coney Island - Stillwell Av","synonyms":[]}},{"id":null,"name":{"value":"9 Av","synonyms":[]}},{"id":null,"name":{"value":"Fort Hamilton Pkwy","synonyms":[]}},{"id":null,"name":{"value":"50 St","synonyms":[]}},{"id":null,"name":{"value":"55 St","synonyms":[]}},{"id":null,"name":{"value":"62 St","synonyms":[]}},{"id":null,"name":{"value":"71 St","synonyms":[]}},{"id":null,"name":{"value":"79 St","synonyms":[]}},{"id":null,"name":{"value":"18 Av","synonyms":[]}},{"id":null,"name":{"value":"20 Av","synonyms":[]}},{"id":null,"name":{"value":"Bay Pkwy","synonyms":[]}},{"id":null,"name":{"value":"25 Av","synonyms":[]}},{"id":null,"name":{"value":"Bay 50 St","synonyms":[]}},{"id":null,"name":{"value":"8 Av","synonyms":[]}},{"id":null,"name":{"value":"New Utrecht Av","synonyms":[]}},{"id":null,"name":{"value":"121 St","synonyms":[]}},{"id":null,"name":{"value":"111 St","synonyms":[]}},{"id":null,"name":{"value":"104 St","synonyms":[]}},{"id":null,"name":{"value":"Woodhaven Blvd","synonyms":[]}},{"id":null,"name":{"value":"85 St - Forest Pkwy","synonyms":[]}},{"id":null,"name":{"value":"75 St","synonyms":[]}},{"id":null,"name":{"value":"Cypress Hills","synonyms":[]}},{"id":null,"name":{"value":"Crescent St","synonyms":[]}},{"id":null,"name":{"value":"Norwood Av","synonyms":[]}},{"id":null,"name":{"value":"Cleveland St","synonyms":[]}},{"id":null,"name":{"value":"Van Siclen Av","synonyms":[]}},{"id":null,"name":{"value":"Alabama Av","synonyms":[]}},{"id":null,"name":{"value":"Broadway Jct","synonyms":[]}},{"id":null,"name":{"value":"Chauncey St","synonyms":[]}},{"id":null,"name":{"value":"Halsey St","synonyms":[]}},{"id":null,"name":{"value":"Gates Av","synonyms":[]}},{"id":null,"name":{"value":"Kosciuszko St","synonyms":[]}},{"id":null,"name":{"value":"Myrtle Av","synonyms":[]}},{"id":null,"name":{"value":"Flushing Av","synonyms":[]}},{"id":null,"name":{"value":"Lorimer St","synonyms":[]}},{"id":null,"name":{"value":"Hewes St","synonyms":[]}},{"id":null,"name":{"value":"Marcy Av","synonyms":[]}},{"id":null,"name":{"value":"Essex St","synonyms":[]}},{"id":null,"name":{"value":"Bowery","synonyms":[]}},{"id":null,"name":{"value":"Chambers St","synonyms":[]}},{"id":null,"name":{"value":"Fulton St","synonyms":[]}},{"id":null,"name":{"value":"Broad St","synonyms":[]}},{"id":null,"name":{"value":"Middle Village - Metropolitan Av","synonyms":[]}},{"id":null,"name":{"value":"Fresh Pond Rd","synonyms":[]}},{"id":null,"name":{"value":"Forest Av","synonyms":[]}},{"id":null,"name":{"value":"Seneca Av","synonyms":[]}},{"id":null,"name":{"value":"Myrtle - Wyckoff Avs","synonyms":[]}},{"id":null,"name":{"value":"Knickerbocker Av","synonyms":[]}},{"id":null,"name":{"value":"Central Av","synonyms":[]}},{"id":null,"name":{"value":"6 Av","synonyms":[]}},{"id":null,"name":{"value":"Union Sq - 14 St","synonyms":[]}},{"id":null,"name":{"value":"3 Av","synonyms":[]}},{"id":null,"name":{"value":"1 Av","synonyms":[]}},{"id":null,"name":{"value":"Bedford Av","synonyms":[]}},{"id":null,"name":{"value":"Graham Av","synonyms":[]}},{"id":null,"name":{"value":"Grand St","synonyms":[]}},{"id":null,"name":{"value":"Montrose Av","synonyms":[]}},{"id":null,"name":{"value":"Morgan Av","synonyms":[]}},{"id":null,"name":{"value":"Jefferson St","synonyms":[]}},{"id":null,"name":{"value":"Wilson Av","synonyms":[]}},{"id":null,"name":{"value":"Bushwick Av - Aberdeen St","synonyms":[]}},{"id":null,"name":{"value":"Atlantic Av","synonyms":[]}},{"id":null,"name":{"value":"Sutter Av","synonyms":[]}},{"id":null,"name":{"value":"Livonia Av","synonyms":[]}},{"id":null,"name":{"value":"New Lots Av","synonyms":[]}},{"id":null,"name":{"value":"E 105 St","synonyms":[]}},{"id":null,"name":{"value":"Canarsie - Rockaway Pkwy","synonyms":[]}},{"id":null,"name":{"value":"Franklin Av","synonyms":[]}},{"id":null,"name":{"value":"Park Pl","synonyms":[]}},{"id":null,"name":{"value":"Botanic Garden","synonyms":[]}},{"id":null,"name":{"value":"Inwood - 207 St","synonyms":[]}},{"id":null,"name":{"value":"Dyckman St","synonyms":[]}},{"id":null,"name":{"value":"190 St","synonyms":[]}},{"id":null,"name":{"value":"181 St","synonyms":[]}},{"id":null,"name":{"value":"175 St","synonyms":[]}},{"id":null,"name":{"value":"168 St","synonyms":[]}},{"id":null,"name":{"value":"163 St - Amsterdam Av","synonyms":[]}},{"id":null,"name":{"value":"155 St","synonyms":[]}},{"id":null,"name":{"value":"145 St","synonyms":[]}},{"id":null,"name":{"value":"135 St","synonyms":[]}},{"id":null,"name":{"value":"125 St","synonyms":[]}},{"id":null,"name":{"value":"116 St","synonyms":[]}},{"id":null,"name":{"value":"Cathedral Pkwy (110 St)","synonyms":[]}},{"id":null,"name":{"value":"103 St","synonyms":[]}},{"id":null,"name":{"value":"96 St","synonyms":[]}},{"id":null,"name":{"value":"81 St - Museum of Natural History","synonyms":[]}},{"id":null,"name":{"value":"72 St","synonyms":[]}},{"id":null,"name":{"value":"59 St - Columbus Circle","synonyms":[]}},{"id":null,"name":{"value":"42 St - Port Authority Bus Terminal","synonyms":[]}},{"id":null,"name":{"value":"34 St - Penn Station","synonyms":[]}},{"id":null,"name":{"value":"14 St","synonyms":[]}},{"id":null,"name":{"value":"W 4 St","synonyms":[]}},{"id":null,"name":{"value":"Spring St","synonyms":[]}},{"id":null,"name":{"value":"World Trade Center","synonyms":[]}},{"id":null,"name":{"value":"High St","synonyms":[]}},{"id":null,"name":{"value":"Hoyt - Schermerhorn Sts","synonyms":[]}},{"id":null,"name":{"value":"Lafayette Av","synonyms":[]}},{"id":null,"name":{"value":"Clinton - Washington Avs","synonyms":[]}},{"id":null,"name":{"value":"Nostrand Av","synonyms":[]}},{"id":null,"name":{"value":"Kingston - Throop Avs","synonyms":[]}},{"id":null,"name":{"value":"Utica Av","synonyms":[]}},{"id":null,"name":{"value":"Ralph Av","synonyms":[]}},{"id":null,"name":{"value":"Rockaway Av","synonyms":[]}},{"id":null,"name":{"value":"Liberty Av","synonyms":[]}},{"id":null,"name":{"value":"Shepherd Av","synonyms":[]}},{"id":null,"name":{"value":"Euclid Av","synonyms":[]}},{"id":null,"name":{"value":"Grant Av","synonyms":[]}},{"id":null,"name":{"value":"80 St","synonyms":[]}},{"id":null,"name":{"value":"88 St","synonyms":[]}},{"id":null,"name":{"value":"Rockaway Blvd","synonyms":[]}},{"id":null,"name":{"value":"Ozone Park - Lefferts Blvd","synonyms":[]}},{"id":null,"name":{"value":"Aqueduct Racetrack","synonyms":[]}},{"id":null,"name":{"value":"Aqueduct - N Conduit Av","synonyms":[]}},{"id":null,"name":{"value":"Howard Beach - JFK Airport","synonyms":[]}},{"id":null,"name":{"value":"Broad Channel","synonyms":[]}},{"id":null,"name":{"value":"Beach 90 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 98 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 105 St","synonyms":[]}},{"id":null,"name":{"value":"Rockaway Park - Beach 116 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 67 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 60 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 44 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 36 St","synonyms":[]}},{"id":null,"name":{"value":"Beach 25 St","synonyms":[]}},{"id":null,"name":{"value":"Far Rockaway - Mott Av","synonyms":[]}},{"id":null,"name":{"value":"Norwood - 205 St","synonyms":[]}},{"id":null,"name":{"value":"Bedford Park Blvd","synonyms":[]}},{"id":null,"name":{"value":"Kingsbridge Rd","synonyms":[]}},{"id":null,"name":{"value":"Fordham Rd","synonyms":[]}},{"id":null,"name":{"value":"182-183 Sts","synonyms":[]}},{"id":null,"name":{"value":"Tremont Av","synonyms":[]}},{"id":null,"name":{"value":"174-175 Sts","synonyms":[]}},{"id":null,"name":{"value":"170 St","synonyms":[]}},{"id":null,"name":{"value":"167 St","synonyms":[]}},{"id":null,"name":{"value":"161 St - Yankee Stadium","synonyms":[]}},{"id":null,"name":{"value":"21 St - Queensbridge","synonyms":[]}},{"id":null,"name":{"value":"Roosevelt Island","synonyms":[]}},{"id":null,"name":{"value":"Lexington Av/63 St","synonyms":[]}},{"id":null,"name":{"value":"57 St","synonyms":[]}},{"id":null,"name":{"value":"47-50 Sts - Rockefeller Ctr","synonyms":[]}},{"id":null,"name":{"value":"42 St - Bryant Pk","synonyms":[]}},{"id":null,"name":{"value":"Broadway-Lafayette St","synonyms":[]}},{"id":null,"name":{"value":"2 Av","synonyms":[]}},{"id":null,"name":{"value":"Delancey St","synonyms":[]}},{"id":null,"name":{"value":"East Broadway","synonyms":[]}},{"id":null,"name":{"value":"York St","synonyms":[]}},{"id":null,"name":{"value":"Bergen St","synonyms":[]}},{"id":null,"name":{"value":"Carroll St","synonyms":[]}},{"id":null,"name":{"value":"Smith - 9 Sts","synonyms":[]}},{"id":null,"name":{"value":"4 Av","synonyms":[]}},{"id":null,"name":{"value":"15 St - Prospect Park","synonyms":[]}},{"id":null,"name":{"value":"Ditmas Av","synonyms":[]}},{"id":null,"name":{"value":"Avenue I","synonyms":[]}},{"id":null,"name":{"value":"Avenue N","synonyms":[]}},{"id":null,"name":{"value":"Avenue P","synonyms":[]}},{"id":null,"name":{"value":"Avenue X","synonyms":[]}},{"id":null,"name":{"value":"Neptune Av","synonyms":[]}},{"id":null,"name":{"value":"Jamaica - 179 St","synonyms":[]}},{"id":null,"name":{"value":"169 St","synonyms":[]}},{"id":null,"name":{"value":"Parsons Blvd","synonyms":[]}},{"id":null,"name":{"value":"Sutphin Blvd","synonyms":[]}},{"id":null,"name":{"value":"Briarwood - Van Wyck Blvd","synonyms":[]}},{"id":null,"name":{"value":"Kew Gardens - Union Tpke","synonyms":[]}},{"id":null,"name":{"value":"75 Av","synonyms":[]}},{"id":null,"name":{"value":"Forest Hills - 71 Av","synonyms":[]}},{"id":null,"name":{"value":"67 Av","synonyms":[]}},{"id":null,"name":{"value":"63 Dr - Rego Park","synonyms":[]}},{"id":null,"name":{"value":"Grand Av - Newtown","synonyms":[]}},{"id":null,"name":{"value":"Elmhurst Av","synonyms":[]}},{"id":null,"name":{"value":"Jackson Hts - Roosevelt Av","synonyms":[]}},{"id":null,"name":{"value":"65 St","synonyms":[]}},{"id":null,"name":{"value":"Northern Blvd","synonyms":[]}},{"id":null,"name":{"value":"46 St","synonyms":[]}},{"id":null,"name":{"value":"Steinway St","synonyms":[]}},{"id":null,"name":{"value":"Queens Plaza","synonyms":[]}},{"id":null,"name":{"value":"Court Sq","synonyms":[]}},{"id":null,"name":{"value":"Lexington Av/53 St","synonyms":[]}},{"id":null,"name":{"value":"5 Av/53 St","synonyms":[]}},{"id":null,"name":{"value":"Jamaica Center - Parsons/Archer","synonyms":[]}},{"id":null,"name":{"value":"Sutphin Blvd - Archer Av - JFK Airport","synonyms":[]}},{"id":null,"name":{"value":"Jamaica - Van Wyck","synonyms":[]}},{"id":null,"name":{"value":"21 St","synonyms":[]}},{"id":null,"name":{"value":"Greenpoint Av","synonyms":[]}},{"id":null,"name":{"value":"Nassau Av","synonyms":[]}},{"id":null,"name":{"value":"Metropolitan Av","synonyms":[]}},{"id":null,"name":{"value":"Myrtle - Willoughby Avs","synonyms":[]}},{"id":null,"name":{"value":"Bedford - Nostrand Avs","synonyms":[]}},{"id":null,"name":{"value":"Classon Av","synonyms":[]}},{"id":null,"name":{"value":"Van Cortlandt Park - 242 St","synonyms":[]}},{"id":null,"name":{"value":"238 St","synonyms":[]}},{"id":null,"name":{"value":"231 St","synonyms":[]}},{"id":null,"name":{"value":"Marble Hill - 225 St","synonyms":[]}},{"id":null,"name":{"value":"215 St","synonyms":[]}},{"id":null,"name":{"value":"207 St","synonyms":[]}},{"id":null,"name":{"value":"191 St","synonyms":[]}},{"id":null,"name":{"value":"168 St - Washington Hts","synonyms":[]}},{"id":null,"name":{"value":"157 St","synonyms":[]}},{"id":null,"name":{"value":"137 St - City College","synonyms":[]}},{"id":null,"name":{"value":"116 St - Columbia University","synonyms":[]}},{"id":null,"name":{"value":"Cathedral Pkwy","synonyms":[]}},{"id":null,"name":{"value":"66 St - Lincoln Center","synonyms":[]}},{"id":null,"name":{"value":"18 St","synonyms":[]}},{"id":null,"name":{"value":"Christopher St - Sheridan Sq","synonyms":[]}},{"id":null,"name":{"value":"Houston St","synonyms":[]}},{"id":null,"name":{"value":"Franklin St","synonyms":[]}},{"id":null,"name":{"value":"South Ferry Loop","synonyms":[]}},{"id":null,"name":{"value":"Wall St","synonyms":[]}},{"id":null,"name":{"value":"Clark St","synonyms":[]}},{"id":null,"name":{"value":"Borough Hall","synonyms":[]}},{"id":null,"name":{"value":"Hoyt St","synonyms":[]}},{"id":null,"name":{"value":"Nevins St","synonyms":[]}},{"id":null,"name":{"value":"Grand Army Plaza","synonyms":[]}},{"id":null,"name":{"value":"Eastern Pkwy - Brooklyn Museum","synonyms":[]}},{"id":null,"name":{"value":"Kingston Av","synonyms":[]}},{"id":null,"name":{"value":"Crown Hts - Utica Av","synonyms":[]}},{"id":null,"name":{"value":"Sutter Av - Rutland Rd","synonyms":[]}},{"id":null,"name":{"value":"Saratoga Av","synonyms":[]}},{"id":null,"name":{"value":"Junius St","synonyms":[]}},{"id":null,"name":{"value":"Pennsylvania Av","synonyms":[]}},{"id":null,"name":{"value":"President St","synonyms":[]}},{"id":null,"name":{"value":"Sterling St","synonyms":[]}},{"id":null,"name":{"value":"Winthrop St","synonyms":[]}},{"id":null,"name":{"value":"Beverly Rd","synonyms":[]}},{"id":null,"name":{"value":"Newkirk Av","synonyms":[]}},{"id":null,"name":{"value":"Flatbush Av - Brooklyn College","synonyms":[]}},{"id":null,"name":{"value":"Pelham Bay Park","synonyms":[]}},{"id":null,"name":{"value":"Buhre Av","synonyms":[]}},{"id":null,"name":{"value":"Middletown Rd","synonyms":[]}},{"id":null,"name":{"value":"Westchester Sq - E Tremont Av","synonyms":[]}},{"id":null,"name":{"value":"Zerega Av","synonyms":[]}},{"id":null,"name":{"value":"Castle Hill Av","synonyms":[]}},{"id":null,"name":{"value":"Parkchester","synonyms":[]}},{"id":null,"name":{"value":"St Lawrence Av","synonyms":[]}},{"id":null,"name":{"value":"Morrison Av- Sound View","synonyms":[]}},{"id":null,"name":{"value":"Elder Av","synonyms":[]}},{"id":null,"name":{"value":"Whitlock Av","synonyms":[]}},{"id":null,"name":{"value":"Hunts Point Av","synonyms":[]}},{"id":null,"name":{"value":"Longwood Av","synonyms":[]}},{"id":null,"name":{"value":"E 149 St","synonyms":[]}},{"id":null,"name":{"value":"E 143 St - St Mary's St","synonyms":[]}},{"id":null,"name":{"value":"Cypress Av","synonyms":[]}},{"id":null,"name":{"value":"Brook Av","synonyms":[]}},{"id":null,"name":{"value":"3 Av - 138 St","synonyms":[]}},{"id":null,"name":{"value":"Woodlawn","synonyms":[]}},{"id":null,"name":{"value":"Mosholu Pkwy","synonyms":[]}},{"id":null,"name":{"value":"Bedford Park Blvd - Lehman College","synonyms":[]}},{"id":null,"name":{"value":"183 St","synonyms":[]}},{"id":null,"name":{"value":"Burnside Av","synonyms":[]}},{"id":null,"name":{"value":"176 St","synonyms":[]}},{"id":null,"name":{"value":"Mt Eden Av","synonyms":[]}},{"id":null,"name":{"value":"149 St - Grand Concourse","synonyms":[]}},{"id":null,"name":{"value":"138 St - Grand Concourse","synonyms":[]}},{"id":null,"name":{"value":"110 St","synonyms":[]}},{"id":null,"name":{"value":"68 St - Hunter College","synonyms":[]}},{"id":null,"name":{"value":"51 St","synonyms":[]}},{"id":null,"name":{"value":"Grand Central - 42 St","synonyms":[]}},{"id":null,"name":{"value":"33 St","synonyms":[]}},{"id":null,"name":{"value":"Astor Pl","synonyms":[]}},{"id":null,"name":{"value":"Bleecker St","synonyms":[]}},{"id":null,"name":{"value":"Brooklyn Bridge - City Hall","synonyms":[]}},{"id":null,"name":{"value":"Bowling Green","synonyms":[]}},{"id":null,"name":{"value":"Wakefield - 241 St","synonyms":[]}},{"id":null,"name":{"value":"Nereid Av","synonyms":[]}},{"id":null,"name":{"value":"233 St","synonyms":[]}},{"id":null,"name":{"value":"225 St","synonyms":[]}},{"id":null,"name":{"value":"219 St","synonyms":[]}},{"id":null,"name":{"value":"Gun Hill Rd","synonyms":[]}},{"id":null,"name":{"value":"Burke Av","synonyms":[]}},{"id":null,"name":{"value":"Allerton Av","synonyms":[]}},{"id":null,"name":{"value":"Pelham Pkwy","synonyms":[]}},{"id":null,"name":{"value":"Bronx Park East","synonyms":[]}},{"id":null,"name":{"value":"E 180 St","synonyms":[]}},{"id":null,"name":{"value":"West Farms Sq - E Tremont Av","synonyms":[]}},{"id":null,"name":{"value":"174 St","synonyms":[]}},{"id":null,"name":{"value":"Freeman St","synonyms":[]}},{"id":null,"name":{"value":"Simpson St","synonyms":[]}},{"id":null,"name":{"value":"Intervale Av","synonyms":[]}},{"id":null,"name":{"value":"Jackson Av","synonyms":[]}},{"id":null,"name":{"value":"3 Av - 149 St","synonyms":[]}},{"id":null,"name":{"value":"Harlem - 148 St","synonyms":[]}},{"id":null,"name":{"value":"Central Park North (110 St)","synonyms":[]}},{"id":null,"name":{"value":"Eastchester - Dyre Av","synonyms":[]}},{"id":null,"name":{"value":"Baychester Av","synonyms":[]}},{"id":null,"name":{"value":"Morris Park","synonyms":[]}},{"id":null,"name":{"value":"Flushing - Main St","synonyms":[]}},{"id":null,"name":{"value":"Mets - Willets Point","synonyms":[]}},{"id":null,"name":{"value":"103 St - Corona Plaza","synonyms":[]}},{"id":null,"name":{"value":"Junction Blvd","synonyms":[]}},{"id":null,"name":{"value":"90 St - Elmhurst Av","synonyms":[]}},{"id":null,"name":{"value":"82 St - Jackson Hts","synonyms":[]}},{"id":null,"name":{"value":"74 St - Broadway","synonyms":[]}},{"id":null,"name":{"value":"69 St","synonyms":[]}},{"id":null,"name":{"value":"Woodside - 61 St","synonyms":[]}},{"id":null,"name":{"value":"52 St","synonyms":[]}},{"id":null,"name":{"value":"40 St","synonyms":[]}},{"id":null,"name":{"value":"Queensboro Plaza","synonyms":[]}},{"id":null,"name":{"value":"Hunters Point Av","synonyms":[]}},{"id":null,"name":{"value":"Vernon Blvd - Jackson Av","synonyms":[]}},{"id":null,"name":{"value":"5 Av","synonyms":[]}},{"id":null,"name":{"value":"34 St - 11 Av","synonyms":[]}},{"id":null,"name":{"value":"St George","synonyms":[]}},{"id":null,"name":{"value":"Tompkinsville","synonyms":[]}},{"id":null,"name":{"value":"Stapleton","synonyms":[]}},{"id":null,"name":{"value":"Clifton","synonyms":[]}},{"id":null,"name":{"value":"Grasmere","synonyms":[]}},{"id":null,"name":{"value":"Old Town","synonyms":[]}},{"id":null,"name":{"value":"Dongan Hills","synonyms":[]}},{"id":null,"name":{"value":"Jefferson Av","synonyms":[]}},{"id":null,"name":{"value":"Grant City","synonyms":[]}},{"id":null,"name":{"value":"New Dorp","synonyms":[]}},{"id":null,"name":{"value":"Oakwood Heights","synonyms":[]}},{"id":null,"name":{"value":"Bay Terrace","synonyms":[]}},{"id":null,"name":{"value":"Great Kills","synonyms":[]}},{"id":null,"name":{"value":"Eltingville","synonyms":[]}},{"id":null,"name":{"value":"Annadale","synonyms":[]}},{"id":null,"name":{"value":"Huguenot","synonyms":[]}},{"id":null,"name":{"value":"Prince's Bay","synonyms":[]}},{"id":null,"name":{"value":"Pleasant Plains","synonyms":[]}},{"id":null,"name":{"value":"Richmond Valley","synonyms":[]}},{"id":null,"name":{"value":"Tottenville","synonyms":[]}},{"id":null,"name":{"value":"Arthur Kill","synonyms":[]}}] \ No newline at end of file diff --git a/data/subway-stops.json b/data/subway-stops.json new file mode 100644 index 0000000..96cc1d0 --- /dev/null +++ b/data/subway-stops.json @@ -0,0 +1,495 @@ +[ +{"Station ID":"001","Complex ID":"001","GTFS Stop ID":"R01","Division":"BMT","Line":"Astoria","Stop Name":"Astoria - Ditmars Blvd","Borough":"Q","Daytime Routes":"N W","Structure":"Elevated","GTFS Latitude":"40.775036","GTFS Longitude":"-73.912034"}, +{"Station ID":"002","Complex ID":"002","GTFS Stop ID":"R03","Division":"BMT","Line":"Astoria","Stop Name":"Astoria Blvd","Borough":"Q","Daytime Routes":"N W","Structure":"Elevated","GTFS Latitude":"40.770258","GTFS Longitude":"-73.917843"}, +{"Station ID":"003","Complex ID":"003","GTFS Stop ID":"R04","Division":"BMT","Line":"Astoria","Stop Name":"30 Av","Borough":"Q","Daytime Routes":"N W","Structure":"Elevated","GTFS Latitude":"40.766779","GTFS Longitude":"-73.921479"}, +{"Station ID":"004","Complex ID":"004","GTFS Stop ID":"R05","Division":"BMT","Line":"Astoria","Stop Name":"Broadway","Borough":"Q","Daytime Routes":"N W","Structure":"Elevated","GTFS Latitude":"40.76182","GTFS Longitude":"-73.925508"}, +{"Station ID":"005","Complex ID":"005","GTFS Stop ID":"R06","Division":"BMT","Line":"Astoria","Stop Name":"36 Av","Borough":"Q","Daytime Routes":"N W","Structure":"Elevated","GTFS Latitude":"40.756804","GTFS Longitude":"-73.929575"}, +{"Station ID":"006","Complex ID":"006","GTFS Stop ID":"R08","Division":"BMT","Line":"Astoria","Stop Name":"39 Av","Borough":"Q","Daytime Routes":"N W","Structure":"Elevated","GTFS Latitude":"40.752882","GTFS Longitude":"-73.932755"}, +{"Station ID":"007","Complex ID":"613","GTFS Stop ID":"R11","Division":"BMT","Line":"Astoria","Stop Name":"Lexington Av/59 St","Borough":"M","Daytime Routes":"N W R","Structure":"Subway","GTFS Latitude":"40.76266","GTFS Longitude":"-73.967258"}, +{"Station ID":"008","Complex ID":"008","GTFS Stop ID":"R13","Division":"BMT","Line":"Astoria","Stop Name":"5 Av/59 St","Borough":"M","Daytime Routes":"N W R","Structure":"Subway","GTFS Latitude":"40.764811","GTFS Longitude":"-73.973347"}, +{"Station ID":"009","Complex ID":"009","GTFS Stop ID":"R14","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"57 St - 7 Av","Borough":"M","Daytime Routes":"N Q R W","Structure":"Subway","GTFS Latitude":"40.764664","GTFS Longitude":"-73.980658"}, +{"Station ID":"010","Complex ID":"010","GTFS Stop ID":"R15","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"49 St","Borough":"M","Daytime Routes":"N R W","Structure":"Subway","GTFS Latitude":"40.759901","GTFS Longitude":"-73.984139"}, +{"Station ID":"011","Complex ID":"611","GTFS Stop ID":"R16","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Times Sq - 42 St","Borough":"M","Daytime Routes":"N Q R W","Structure":"Subway","GTFS Latitude":"40.754672","GTFS Longitude":"-73.986754"}, +{"Station ID":"012","Complex ID":"607","GTFS Stop ID":"R17","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"34 St - Herald Sq","Borough":"M","Daytime Routes":"N Q R W","Structure":"Subway","GTFS Latitude":"40.749567","GTFS Longitude":"-73.98795"}, +{"Station ID":"013","Complex ID":"013","GTFS Stop ID":"R18","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"28 St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.745494","GTFS Longitude":"-73.988691"}, +{"Station ID":"014","Complex ID":"014","GTFS Stop ID":"R19","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"23 St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.741303","GTFS Longitude":"-73.989344"}, +{"Station ID":"015","Complex ID":"602","GTFS Stop ID":"R20","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"14 St - Union Sq","Borough":"M","Daytime Routes":"N Q R W","Structure":"Subway","GTFS Latitude":"40.735736","GTFS Longitude":"-73.990568"}, +{"Station ID":"016","Complex ID":"016","GTFS Stop ID":"R21","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"8 St - NYU","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.730328","GTFS Longitude":"-73.992629"}, +{"Station ID":"017","Complex ID":"017","GTFS Stop ID":"R22","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Prince St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.724329","GTFS Longitude":"-73.997702"}, +{"Station ID":"018","Complex ID":"623","GTFS Stop ID":"R23","Division":"BMT","Line":"Broadway","Stop Name":"Canal St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.719527","GTFS Longitude":"-74.001775"}, +{"Station ID":"019","Complex ID":"623","GTFS Stop ID":"Q01","Division":"BMT","Line":"Manhattan Bridge","Stop Name":"Canal St","Borough":"M","Daytime Routes":"N Q","Structure":"Subway","GTFS Latitude":"40.718383","GTFS Longitude":"-74.00046"}, +{"Station ID":"020","Complex ID":"020","GTFS Stop ID":"R24","Division":"BMT","Line":"Broadway","Stop Name":"City Hall","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.713282","GTFS Longitude":"-74.006978"}, +{"Station ID":"021","Complex ID":"021","GTFS Stop ID":"R25","Division":"BMT","Line":"Broadway","Stop Name":"Cortlandt St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.710668","GTFS Longitude":"-74.011029"}, +{"Station ID":"022","Complex ID":"022","GTFS Stop ID":"R26","Division":"BMT","Line":"Broadway","Stop Name":"Rector St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.70722","GTFS Longitude":"-74.013342"}, +{"Station ID":"023","Complex ID":"635","GTFS Stop ID":"R27","Division":"BMT","Line":"Broadway","Stop Name":"Whitehall St","Borough":"M","Daytime Routes":"R W","Structure":"Subway","GTFS Latitude":"40.703087","GTFS Longitude":"-74.012994"}, +{"Station ID":"024","Complex ID":"620","GTFS Stop ID":"R28","Division":"BMT","Line":"Broadway","Stop Name":"Court St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.6941","GTFS Longitude":"-73.991777"}, +{"Station ID":"025","Complex ID":"636","GTFS Stop ID":"R29","Division":"BMT","Line":"Broadway","Stop Name":"Jay St - MetroTech","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.69218","GTFS Longitude":"-73.985942"}, +{"Station ID":"026","Complex ID":"026","GTFS Stop ID":"R30","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"DeKalb Av","Borough":"Bk","Daytime Routes":"B Q R","Structure":"Subway","GTFS Latitude":"40.690635","GTFS Longitude":"-73.981824"}, +{"Station ID":"027","Complex ID":"617","GTFS Stop ID":"R31","Division":"BMT","Line":"4th Av","Stop Name":"Atlantic Av - Barclays Ctr","Borough":"Bk","Daytime Routes":"D N R","Structure":"Subway","GTFS Latitude":"40.683666","GTFS Longitude":"-73.97881"}, +{"Station ID":"028","Complex ID":"028","GTFS Stop ID":"R32","Division":"BMT","Line":"4th Av","Stop Name":"Union St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.677316","GTFS Longitude":"-73.98311"}, +{"Station ID":"029","Complex ID":"608","GTFS Stop ID":"R33","Division":"BMT","Line":"4th Av","Stop Name":"9 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.670847","GTFS Longitude":"-73.988302"}, +{"Station ID":"030","Complex ID":"030","GTFS Stop ID":"R34","Division":"BMT","Line":"4th Av","Stop Name":"Prospect Av","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.665414","GTFS Longitude":"-73.992872"}, +{"Station ID":"031","Complex ID":"031","GTFS Stop ID":"R35","Division":"BMT","Line":"4th Av","Stop Name":"25 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.660397","GTFS Longitude":"-73.998091"}, +{"Station ID":"032","Complex ID":"032","GTFS Stop ID":"R36","Division":"BMT","Line":"4th Av","Stop Name":"36 St","Borough":"Bk","Daytime Routes":"D N R","Structure":"Subway","GTFS Latitude":"40.655144","GTFS Longitude":"-74.003549"}, +{"Station ID":"033","Complex ID":"033","GTFS Stop ID":"R39","Division":"BMT","Line":"4th Av","Stop Name":"45 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.648939","GTFS Longitude":"-74.010006"}, +{"Station ID":"034","Complex ID":"034","GTFS Stop ID":"R40","Division":"BMT","Line":"4th Av","Stop Name":"53 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.645069","GTFS Longitude":"-74.014034"}, +{"Station ID":"035","Complex ID":"035","GTFS Stop ID":"R41","Division":"BMT","Line":"4th Av","Stop Name":"59 St","Borough":"Bk","Daytime Routes":"N R","Structure":"Subway","GTFS Latitude":"40.641362","GTFS Longitude":"-74.017881"}, +{"Station ID":"036","Complex ID":"036","GTFS Stop ID":"R42","Division":"BMT","Line":"4th Av","Stop Name":"Bay Ridge Av","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.634967","GTFS Longitude":"-74.023377"}, +{"Station ID":"037","Complex ID":"037","GTFS Stop ID":"R43","Division":"BMT","Line":"4th Av","Stop Name":"77 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.629742","GTFS Longitude":"-74.02551"}, +{"Station ID":"038","Complex ID":"038","GTFS Stop ID":"R44","Division":"BMT","Line":"4th Av","Stop Name":"86 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.622687","GTFS Longitude":"-74.028398"}, +{"Station ID":"039","Complex ID":"039","GTFS Stop ID":"R45","Division":"BMT","Line":"4th Av","Stop Name":"Bay Ridge - 95 St","Borough":"Bk","Daytime Routes":"R","Structure":"Subway","GTFS Latitude":"40.616622","GTFS Longitude":"-74.030876"}, +{"Station ID":"040","Complex ID":"617","GTFS Stop ID":"D24","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Atlantic Av - Barclays Ctr","Borough":"Bk","Daytime Routes":"B Q","Structure":"Subway","GTFS Latitude":"40.68446","GTFS Longitude":"-73.97689"}, +{"Station ID":"041","Complex ID":"041","GTFS Stop ID":"D25","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"7 Av","Borough":"Bk","Daytime Routes":"B Q","Structure":"Subway","GTFS Latitude":"40.67705","GTFS Longitude":"-73.972367"}, +{"Station ID":"042","Complex ID":"042","GTFS Stop ID":"D26","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Prospect Park","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.661614","GTFS Longitude":"-73.962246"}, +{"Station ID":"043","Complex ID":"043","GTFS Stop ID":"D27","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Parkside Av","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.655292","GTFS Longitude":"-73.961495"}, +{"Station ID":"044","Complex ID":"044","GTFS Stop ID":"D28","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Church Av","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.650527","GTFS Longitude":"-73.962982"}, +{"Station ID":"045","Complex ID":"045","GTFS Stop ID":"D29","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Beverley Rd","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.644031","GTFS Longitude":"-73.964492"}, +{"Station ID":"046","Complex ID":"046","GTFS Stop ID":"D30","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Cortelyou Rd","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.640927","GTFS Longitude":"-73.963891"}, +{"Station ID":"047","Complex ID":"047","GTFS Stop ID":"D31","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Newkirk Plaza","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.635082","GTFS Longitude":"-73.962793"}, +{"Station ID":"048","Complex ID":"048","GTFS Stop ID":"D32","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Avenue H","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.62927","GTFS Longitude":"-73.961639"}, +{"Station ID":"049","Complex ID":"049","GTFS Stop ID":"D33","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Avenue J","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.625039","GTFS Longitude":"-73.960803"}, +{"Station ID":"050","Complex ID":"050","GTFS Stop ID":"D34","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Avenue M","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.617618","GTFS Longitude":"-73.959399"}, +{"Station ID":"051","Complex ID":"051","GTFS Stop ID":"D35","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Kings Hwy","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.60867","GTFS Longitude":"-73.957734"}, +{"Station ID":"052","Complex ID":"052","GTFS Stop ID":"D37","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Avenue U","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.5993","GTFS Longitude":"-73.955929"}, +{"Station ID":"053","Complex ID":"053","GTFS Stop ID":"D38","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Neck Rd","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.595246","GTFS Longitude":"-73.955161"}, +{"Station ID":"054","Complex ID":"054","GTFS Stop ID":"D39","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Sheepshead Bay","Borough":"Bk","Daytime Routes":"B Q","Structure":"Open Cut","GTFS Latitude":"40.586896","GTFS Longitude":"-73.954155"}, +{"Station ID":"055","Complex ID":"055","GTFS Stop ID":"D40","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Brighton Beach","Borough":"Bk","Daytime Routes":"B Q","Structure":"Elevated","GTFS Latitude":"40.577621","GTFS Longitude":"-73.961376"}, +{"Station ID":"056","Complex ID":"056","GTFS Stop ID":"D41","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"Ocean Pkwy","Borough":"Bk","Daytime Routes":"Q","Structure":"Elevated","GTFS Latitude":"40.576312","GTFS Longitude":"-73.968501"}, +{"Station ID":"057","Complex ID":"057","GTFS Stop ID":"D42","Division":"BMT","Line":"Broadway - Brighton","Stop Name":"W 8 St - NY Aquarium","Borough":"Bk","Daytime Routes":"F Q","Structure":"Elevated","GTFS Latitude":"40.576127","GTFS Longitude":"-73.975939"}, +{"Station ID":"058","Complex ID":"058","GTFS Stop ID":"D43","Division":"BMT","Line":"Sea Beach / West End / Culver / Brighton","Stop Name":"Coney Island - Stillwell Av","Borough":"Bk","Daytime Routes":"D F N Q","Structure":"Viaduct","GTFS Latitude":"40.577422","GTFS Longitude":"-73.981233"}, +{"Station ID":"059","Complex ID":"059","GTFS Stop ID":"B12","Division":"BMT","Line":"West End","Stop Name":"9 Av","Borough":"Bk","Daytime Routes":"D","Structure":"Open Cut","GTFS Latitude":"40.646292","GTFS Longitude":"-73.994324"}, +{"Station ID":"060","Complex ID":"060","GTFS Stop ID":"B13","Division":"BMT","Line":"West End","Stop Name":"Fort Hamilton Pkwy","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.640914","GTFS Longitude":"-73.994304"}, +{"Station ID":"061","Complex ID":"061","GTFS Stop ID":"B14","Division":"BMT","Line":"West End","Stop Name":"50 St","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.63626","GTFS Longitude":"-73.994791"}, +{"Station ID":"062","Complex ID":"062","GTFS Stop ID":"B15","Division":"BMT","Line":"West End","Stop Name":"55 St","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.631435","GTFS Longitude":"-73.995476"}, +{"Station ID":"063","Complex ID":"615","GTFS Stop ID":"B16","Division":"BMT","Line":"West End","Stop Name":"62 St","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.626472","GTFS Longitude":"-73.996895"}, +{"Station ID":"064","Complex ID":"064","GTFS Stop ID":"B17","Division":"BMT","Line":"West End","Stop Name":"71 St","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.619589","GTFS Longitude":"-73.998864"}, +{"Station ID":"065","Complex ID":"065","GTFS Stop ID":"B18","Division":"BMT","Line":"West End","Stop Name":"79 St","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.613501","GTFS Longitude":"-74.00061"}, +{"Station ID":"066","Complex ID":"066","GTFS Stop ID":"B19","Division":"BMT","Line":"West End","Stop Name":"18 Av","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.607954","GTFS Longitude":"-74.001736"}, +{"Station ID":"067","Complex ID":"067","GTFS Stop ID":"B20","Division":"BMT","Line":"West End","Stop Name":"20 Av","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.604556","GTFS Longitude":"-73.998168"}, +{"Station ID":"068","Complex ID":"068","GTFS Stop ID":"B21","Division":"BMT","Line":"West End","Stop Name":"Bay Pkwy","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.601875","GTFS Longitude":"-73.993728"}, +{"Station ID":"069","Complex ID":"069","GTFS Stop ID":"B22","Division":"BMT","Line":"West End","Stop Name":"25 Av","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.597704","GTFS Longitude":"-73.986829"}, +{"Station ID":"070","Complex ID":"070","GTFS Stop ID":"B23","Division":"BMT","Line":"West End","Stop Name":"Bay 50 St","Borough":"Bk","Daytime Routes":"D","Structure":"Elevated","GTFS Latitude":"40.588841","GTFS Longitude":"-73.983765"}, +{"Station ID":"071","Complex ID":"071","GTFS Stop ID":"N02","Division":"BMT","Line":"Sea Beach","Stop Name":"8 Av","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.635064","GTFS Longitude":"-74.011719"}, +{"Station ID":"072","Complex ID":"072","GTFS Stop ID":"N03","Division":"BMT","Line":"Sea Beach","Stop Name":"Fort Hamilton Pkwy","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.631386","GTFS Longitude":"-74.005351"}, +{"Station ID":"073","Complex ID":"615","GTFS Stop ID":"N04","Division":"BMT","Line":"Sea Beach","Stop Name":"New Utrecht Av","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.624842","GTFS Longitude":"-73.996353"}, +{"Station ID":"074","Complex ID":"074","GTFS Stop ID":"N05","Division":"BMT","Line":"Sea Beach","Stop Name":"18 Av","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.620671","GTFS Longitude":"-73.990414"}, +{"Station ID":"075","Complex ID":"075","GTFS Stop ID":"N06","Division":"BMT","Line":"Sea Beach","Stop Name":"20 Av","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.61741","GTFS Longitude":"-73.985026"}, +{"Station ID":"076","Complex ID":"076","GTFS Stop ID":"N07","Division":"BMT","Line":"Sea Beach","Stop Name":"Bay Pkwy","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.611815","GTFS Longitude":"-73.981848"}, +{"Station ID":"077","Complex ID":"077","GTFS Stop ID":"N08","Division":"BMT","Line":"Sea Beach","Stop Name":"Kings Hwy","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.603923","GTFS Longitude":"-73.980353"}, +{"Station ID":"078","Complex ID":"078","GTFS Stop ID":"N09","Division":"BMT","Line":"Sea Beach","Stop Name":"Avenue U","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.597473","GTFS Longitude":"-73.979137"}, +{"Station ID":"079","Complex ID":"079","GTFS Stop ID":"N10","Division":"BMT","Line":"Sea Beach","Stop Name":"86 St","Borough":"Bk","Daytime Routes":"N","Structure":"Open Cut","GTFS Latitude":"40.592721","GTFS Longitude":"-73.97823"}, +{"Station ID":"080","Complex ID":"080","GTFS Stop ID":"J12","Division":"BMT","Line":"Jamaica","Stop Name":"121 St","Borough":"Q","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.700492","GTFS Longitude":"-73.828294"}, +{"Station ID":"081","Complex ID":"081","GTFS Stop ID":"J13","Division":"BMT","Line":"Jamaica","Stop Name":"111 St","Borough":"Q","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.697418","GTFS Longitude":"-73.836345"}, +{"Station ID":"082","Complex ID":"082","GTFS Stop ID":"J14","Division":"BMT","Line":"Jamaica","Stop Name":"104 St","Borough":"Q","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.695178","GTFS Longitude":"-73.84433"}, +{"Station ID":"083","Complex ID":"083","GTFS Stop ID":"J15","Division":"BMT","Line":"Jamaica","Stop Name":"Woodhaven Blvd","Borough":"Q","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.693879","GTFS Longitude":"-73.851576"}, +{"Station ID":"084","Complex ID":"084","GTFS Stop ID":"J16","Division":"BMT","Line":"Jamaica","Stop Name":"85 St - Forest Pkwy","Borough":"Q","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.692435","GTFS Longitude":"-73.86001"}, +{"Station ID":"085","Complex ID":"085","GTFS Stop ID":"J17","Division":"BMT","Line":"Jamaica","Stop Name":"75 St","Borough":"Q","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.691324","GTFS Longitude":"-73.867139"}, +{"Station ID":"086","Complex ID":"086","GTFS Stop ID":"J19","Division":"BMT","Line":"Jamaica","Stop Name":"Cypress Hills","Borough":"Bk","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.689941","GTFS Longitude":"-73.87255"}, +{"Station ID":"087","Complex ID":"087","GTFS Stop ID":"J20","Division":"BMT","Line":"Jamaica","Stop Name":"Crescent St","Borough":"Bk","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.683194","GTFS Longitude":"-73.873785"}, +{"Station ID":"088","Complex ID":"088","GTFS Stop ID":"J21","Division":"BMT","Line":"Jamaica","Stop Name":"Norwood Av","Borough":"Bk","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.68141","GTFS Longitude":"-73.880039"}, +{"Station ID":"089","Complex ID":"089","GTFS Stop ID":"J22","Division":"BMT","Line":"Jamaica","Stop Name":"Cleveland St","Borough":"Bk","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.679947","GTFS Longitude":"-73.884639"}, +{"Station ID":"090","Complex ID":"090","GTFS Stop ID":"J23","Division":"BMT","Line":"Jamaica","Stop Name":"Van Siclen Av","Borough":"Bk","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.678024","GTFS Longitude":"-73.891688"}, +{"Station ID":"091","Complex ID":"091","GTFS Stop ID":"J24","Division":"BMT","Line":"Jamaica","Stop Name":"Alabama Av","Borough":"Bk","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.676992","GTFS Longitude":"-73.898654"}, +{"Station ID":"092","Complex ID":"621","GTFS Stop ID":"J27","Division":"BMT","Line":"Jamaica","Stop Name":"Broadway Jct","Borough":"Bk","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.679498","GTFS Longitude":"-73.904512"}, +{"Station ID":"093","Complex ID":"093","GTFS Stop ID":"J28","Division":"BMT","Line":"Jamaica","Stop Name":"Chauncey St","Borough":"Bk","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.682893","GTFS Longitude":"-73.910456"}, +{"Station ID":"094","Complex ID":"094","GTFS Stop ID":"J29","Division":"BMT","Line":"Jamaica","Stop Name":"Halsey St","Borough":"Bk","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.68637","GTFS Longitude":"-73.916559"}, +{"Station ID":"095","Complex ID":"095","GTFS Stop ID":"J30","Division":"BMT","Line":"Jamaica","Stop Name":"Gates Av","Borough":"Bk","Daytime Routes":"J Z","Structure":"Elevated","GTFS Latitude":"40.68963","GTFS Longitude":"-73.92227"}, +{"Station ID":"096","Complex ID":"096","GTFS Stop ID":"J31","Division":"BMT","Line":"Jamaica","Stop Name":"Kosciuszko St","Borough":"Bk","Daytime Routes":"J","Structure":"Elevated","GTFS Latitude":"40.693342","GTFS Longitude":"-73.928814"}, +{"Station ID":"097","Complex ID":"097","GTFS Stop ID":"M11","Division":"BMT","Line":"Jamaica","Stop Name":"Myrtle Av","Borough":"Bk","Daytime Routes":"J M Z","Structure":"Elevated","GTFS Latitude":"40.697207","GTFS Longitude":"-73.935657"}, +{"Station ID":"098","Complex ID":"098","GTFS Stop ID":"M12","Division":"BMT","Line":"Jamaica","Stop Name":"Flushing Av","Borough":"Bk","Daytime Routes":"J M","Structure":"Elevated","GTFS Latitude":"40.70026","GTFS Longitude":"-73.941126"}, +{"Station ID":"099","Complex ID":"099","GTFS Stop ID":"M13","Division":"BMT","Line":"Jamaica","Stop Name":"Lorimer St","Borough":"Bk","Daytime Routes":"J M","Structure":"Elevated","GTFS Latitude":"40.703869","GTFS Longitude":"-73.947408"}, +{"Station ID":"100","Complex ID":"100","GTFS Stop ID":"M14","Division":"BMT","Line":"Jamaica","Stop Name":"Hewes St","Borough":"Bk","Daytime Routes":"J M","Structure":"Elevated","GTFS Latitude":"40.70687","GTFS Longitude":"-73.953431"}, +{"Station ID":"101","Complex ID":"101","GTFS Stop ID":"M16","Division":"BMT","Line":"Jamaica","Stop Name":"Marcy Av","Borough":"Bk","Daytime Routes":"J M Z","Structure":"Elevated","GTFS Latitude":"40.708359","GTFS Longitude":"-73.957757"}, +{"Station ID":"102","Complex ID":"625","GTFS Stop ID":"M18","Division":"BMT","Line":"Jamaica","Stop Name":"Essex St","Borough":"M","Daytime Routes":"J M Z","Structure":"Subway","GTFS Latitude":"40.718315","GTFS Longitude":"-73.987437"}, +{"Station ID":"103","Complex ID":"103","GTFS Stop ID":"M19","Division":"BMT","Line":"Jamaica","Stop Name":"Bowery","Borough":"M","Daytime Routes":"J Z","Structure":"Subway","GTFS Latitude":"40.72028","GTFS Longitude":"-73.993915"}, +{"Station ID":"104","Complex ID":"623","GTFS Stop ID":"M20","Division":"BMT","Line":"Jamaica","Stop Name":"Canal St","Borough":"M","Daytime Routes":"J Z","Structure":"Subway","GTFS Latitude":"40.718092","GTFS Longitude":"-73.999892"}, +{"Station ID":"105","Complex ID":"622","GTFS Stop ID":"M21","Division":"BMT","Line":"Jamaica","Stop Name":"Chambers St","Borough":"M","Daytime Routes":"J Z","Structure":"Subway","GTFS Latitude":"40.713243","GTFS Longitude":"-74.003401"}, +{"Station ID":"106","Complex ID":"628","GTFS Stop ID":"M22","Division":"BMT","Line":"Jamaica","Stop Name":"Fulton St","Borough":"M","Daytime Routes":"J Z","Structure":"Subway","GTFS Latitude":"40.710374","GTFS Longitude":"-74.007582"}, +{"Station ID":"107","Complex ID":"107","GTFS Stop ID":"M23","Division":"BMT","Line":"Jamaica","Stop Name":"Broad St","Borough":"M","Daytime Routes":"J Z","Structure":"Subway","GTFS Latitude":"40.706476","GTFS Longitude":"-74.011056"}, +{"Station ID":"108","Complex ID":"108","GTFS Stop ID":"M01","Division":"BMT","Line":"Myrtle Av","Stop Name":"Middle Village - Metropolitan Av","Borough":"Q","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.711396","GTFS Longitude":"-73.889601"}, +{"Station ID":"109","Complex ID":"109","GTFS Stop ID":"M04","Division":"BMT","Line":"Myrtle Av","Stop Name":"Fresh Pond Rd","Borough":"Q","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.706186","GTFS Longitude":"-73.895877"}, +{"Station ID":"110","Complex ID":"110","GTFS Stop ID":"M05","Division":"BMT","Line":"Myrtle Av","Stop Name":"Forest Av","Borough":"Q","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.704423","GTFS Longitude":"-73.903077"}, +{"Station ID":"111","Complex ID":"111","GTFS Stop ID":"M06","Division":"BMT","Line":"Myrtle Av","Stop Name":"Seneca Av","Borough":"Q","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.702762","GTFS Longitude":"-73.90774"}, +{"Station ID":"112","Complex ID":"630","GTFS Stop ID":"M08","Division":"BMT","Line":"Myrtle Av","Stop Name":"Myrtle - Wyckoff Avs","Borough":"Bk","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.69943","GTFS Longitude":"-73.912385"}, +{"Station ID":"113","Complex ID":"113","GTFS Stop ID":"M09","Division":"BMT","Line":"Myrtle Av","Stop Name":"Knickerbocker Av","Borough":"Bk","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.698664","GTFS Longitude":"-73.919711"}, +{"Station ID":"114","Complex ID":"114","GTFS Stop ID":"M10","Division":"BMT","Line":"Myrtle Av","Stop Name":"Central Av","Borough":"Bk","Daytime Routes":"M","Structure":"Elevated","GTFS Latitude":"40.697857","GTFS Longitude":"-73.927397"}, +{"Station ID":"115","Complex ID":"618","GTFS Stop ID":"L01","Division":"BMT","Line":"Canarsie","Stop Name":"8 Av","Borough":"M","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.739777","GTFS Longitude":"-74.002578"}, +{"Station ID":"116","Complex ID":"601","GTFS Stop ID":"L02","Division":"BMT","Line":"Canarsie","Stop Name":"6 Av","Borough":"M","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.737335","GTFS Longitude":"-73.996786"}, +{"Station ID":"117","Complex ID":"602","GTFS Stop ID":"L03","Division":"BMT","Line":"Canarsie","Stop Name":"Union Sq - 14 St","Borough":"M","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.734789","GTFS Longitude":"-73.99073"}, +{"Station ID":"118","Complex ID":"118","GTFS Stop ID":"L05","Division":"BMT","Line":"Canarsie","Stop Name":"3 Av","Borough":"M","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.732849","GTFS Longitude":"-73.986122"}, +{"Station ID":"119","Complex ID":"119","GTFS Stop ID":"L06","Division":"BMT","Line":"Canarsie","Stop Name":"1 Av","Borough":"M","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.730953","GTFS Longitude":"-73.981628"}, +{"Station ID":"120","Complex ID":"120","GTFS Stop ID":"L08","Division":"BMT","Line":"Canarsie","Stop Name":"Bedford Av","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.717304","GTFS Longitude":"-73.956872"}, +{"Station ID":"121","Complex ID":"629","GTFS Stop ID":"L10","Division":"BMT","Line":"Canarsie","Stop Name":"Lorimer St","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.714063","GTFS Longitude":"-73.950275"}, +{"Station ID":"122","Complex ID":"122","GTFS Stop ID":"L11","Division":"BMT","Line":"Canarsie","Stop Name":"Graham Av","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.714565","GTFS Longitude":"-73.944053"}, +{"Station ID":"123","Complex ID":"123","GTFS Stop ID":"L12","Division":"BMT","Line":"Canarsie","Stop Name":"Grand St","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.711926","GTFS Longitude":"-73.94067"}, +{"Station ID":"124","Complex ID":"124","GTFS Stop ID":"L13","Division":"BMT","Line":"Canarsie","Stop Name":"Montrose Av","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.707739","GTFS Longitude":"-73.93985"}, +{"Station ID":"125","Complex ID":"125","GTFS Stop ID":"L14","Division":"BMT","Line":"Canarsie","Stop Name":"Morgan Av","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.706152","GTFS Longitude":"-73.933147"}, +{"Station ID":"126","Complex ID":"126","GTFS Stop ID":"L15","Division":"BMT","Line":"Canarsie","Stop Name":"Jefferson St","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.706607","GTFS Longitude":"-73.922913"}, +{"Station ID":"127","Complex ID":"127","GTFS Stop ID":"L16","Division":"BMT","Line":"Canarsie","Stop Name":"DeKalb Av","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.703811","GTFS Longitude":"-73.918425"}, +{"Station ID":"128","Complex ID":"630","GTFS Stop ID":"L17","Division":"BMT","Line":"Canarsie","Stop Name":"Myrtle - Wyckoff Avs","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.699814","GTFS Longitude":"-73.911586"}, +{"Station ID":"129","Complex ID":"129","GTFS Stop ID":"L19","Division":"BMT","Line":"Canarsie","Stop Name":"Halsey St","Borough":"Q","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.695602","GTFS Longitude":"-73.904084"}, +{"Station ID":"130","Complex ID":"130","GTFS Stop ID":"L20","Division":"BMT","Line":"Canarsie","Stop Name":"Wilson Av","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.688764","GTFS Longitude":"-73.904046"}, +{"Station ID":"131","Complex ID":"131","GTFS Stop ID":"L21","Division":"BMT","Line":"Canarsie","Stop Name":"Bushwick Av - Aberdeen St","Borough":"Bk","Daytime Routes":"L","Structure":"Subway","GTFS Latitude":"40.682829","GTFS Longitude":"-73.905249"}, +{"Station ID":"132","Complex ID":"621","GTFS Stop ID":"L22","Division":"BMT","Line":"Canarsie","Stop Name":"Broadway Jct","Borough":"Bk","Daytime Routes":"L","Structure":"Elevated","GTFS Latitude":"40.678856","GTFS Longitude":"-73.90324"}, +{"Station ID":"133","Complex ID":"133","GTFS Stop ID":"L24","Division":"BMT","Line":"Canarsie","Stop Name":"Atlantic Av","Borough":"Bk","Daytime Routes":"L","Structure":"Elevated","GTFS Latitude":"40.675345","GTFS Longitude":"-73.903097"}, +{"Station ID":"134","Complex ID":"134","GTFS Stop ID":"L25","Division":"BMT","Line":"Canarsie","Stop Name":"Sutter Av","Borough":"Bk","Daytime Routes":"L","Structure":"Elevated","GTFS Latitude":"40.669367","GTFS Longitude":"-73.901975"}, +{"Station ID":"135","Complex ID":"135","GTFS Stop ID":"L26","Division":"BMT","Line":"Canarsie","Stop Name":"Livonia Av","Borough":"Bk","Daytime Routes":"L","Structure":"Elevated","GTFS Latitude":"40.664038","GTFS Longitude":"-73.900571"}, +{"Station ID":"136","Complex ID":"136","GTFS Stop ID":"L27","Division":"BMT","Line":"Canarsie","Stop Name":"New Lots Av","Borough":"Bk","Daytime Routes":"L","Structure":"Elevated","GTFS Latitude":"40.658733","GTFS Longitude":"-73.899232"}, +{"Station ID":"137","Complex ID":"137","GTFS Stop ID":"L28","Division":"BMT","Line":"Canarsie","Stop Name":"E 105 St","Borough":"Bk","Daytime Routes":"L","Structure":"At Grade","GTFS Latitude":"40.650573","GTFS Longitude":"-73.899485"}, +{"Station ID":"138","Complex ID":"138","GTFS Stop ID":"L29","Division":"BMT","Line":"Canarsie","Stop Name":"Canarsie - Rockaway Pkwy","Borough":"Bk","Daytime Routes":"L","Structure":"At Grade","GTFS Latitude":"40.646654","GTFS Longitude":"-73.90185"}, +{"Station ID":"139","Complex ID":"627","GTFS Stop ID":"S01","Division":"BMT","Line":"Franklin Shuttle","Stop Name":"Franklin Av","Borough":"Bk","Daytime Routes":"S","Structure":"Elevated","GTFS Latitude":"40.680596","GTFS Longitude":"-73.955827"}, +{"Station ID":"141","Complex ID":"141","GTFS Stop ID":"S03","Division":"BMT","Line":"Franklin Shuttle","Stop Name":"Park Pl","Borough":"Bk","Daytime Routes":"S","Structure":"Open Cut","GTFS Latitude":"40.674772","GTFS Longitude":"-73.957624"}, +{"Station ID":"142","Complex ID":"626","GTFS Stop ID":"S04","Division":"BMT","Line":"Franklin Shuttle","Stop Name":"Botanic Garden","Borough":"Bk","Daytime Routes":"S","Structure":"Open Cut","GTFS Latitude":"40.670343","GTFS Longitude":"-73.959245"}, +{"Station ID":"143","Complex ID":"143","GTFS Stop ID":"A02","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Inwood - 207 St","Borough":"M","Daytime Routes":"A","Structure":"Subway","GTFS Latitude":"40.868072","GTFS Longitude":"-73.919899"}, +{"Station ID":"144","Complex ID":"144","GTFS Stop ID":"A03","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Dyckman St","Borough":"M","Daytime Routes":"A","Structure":"Subway","GTFS Latitude":"40.865491","GTFS Longitude":"-73.927271"}, +{"Station ID":"145","Complex ID":"145","GTFS Stop ID":"A05","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"190 St","Borough":"M","Daytime Routes":"A","Structure":"Subway","GTFS Latitude":"40.859022","GTFS Longitude":"-73.93418"}, +{"Station ID":"146","Complex ID":"146","GTFS Stop ID":"A06","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"181 St","Borough":"M","Daytime Routes":"A","Structure":"Subway","GTFS Latitude":"40.851695","GTFS Longitude":"-73.937969"}, +{"Station ID":"147","Complex ID":"147","GTFS Stop ID":"A07","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"175 St","Borough":"M","Daytime Routes":"A","Structure":"Subway","GTFS Latitude":"40.847391","GTFS Longitude":"-73.939704"}, +{"Station ID":"148","Complex ID":"605","GTFS Stop ID":"A09","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"168 St","Borough":"M","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.840719","GTFS Longitude":"-73.939561"}, +{"Station ID":"149","Complex ID":"149","GTFS Stop ID":"A10","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"163 St - Amsterdam Av","Borough":"M","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.836013","GTFS Longitude":"-73.939892"}, +{"Station ID":"150","Complex ID":"150","GTFS Stop ID":"A11","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"155 St","Borough":"M","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.830518","GTFS Longitude":"-73.941514"}, +{"Station ID":"151","Complex ID":"151","GTFS Stop ID":"A12","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"145 St","Borough":"M","Daytime Routes":"A B C D","Structure":"Subway","GTFS Latitude":"40.824783","GTFS Longitude":"-73.944216"}, +{"Station ID":"152","Complex ID":"152","GTFS Stop ID":"A14","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"135 St","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.817894","GTFS Longitude":"-73.947649"}, +{"Station ID":"153","Complex ID":"153","GTFS Stop ID":"A15","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"125 St","Borough":"M","Daytime Routes":"A B C D","Structure":"Subway","GTFS Latitude":"40.811109","GTFS Longitude":"-73.952343"}, +{"Station ID":"154","Complex ID":"154","GTFS Stop ID":"A16","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"116 St","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.805085","GTFS Longitude":"-73.954882"}, +{"Station ID":"155","Complex ID":"155","GTFS Stop ID":"A17","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Cathedral Pkwy (110 St)","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.800603","GTFS Longitude":"-73.958161"}, +{"Station ID":"156","Complex ID":"156","GTFS Stop ID":"A18","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"103 St","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.796092","GTFS Longitude":"-73.961454"}, +{"Station ID":"157","Complex ID":"157","GTFS Stop ID":"A19","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"96 St","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.791642","GTFS Longitude":"-73.964696"}, +{"Station ID":"158","Complex ID":"158","GTFS Stop ID":"A20","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"86 St","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.785868","GTFS Longitude":"-73.968916"}, +{"Station ID":"159","Complex ID":"159","GTFS Stop ID":"A21","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"81 St - Museum of Natural History","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.781433","GTFS Longitude":"-73.972143"}, +{"Station ID":"160","Complex ID":"160","GTFS Stop ID":"A22","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"72 St","Borough":"M","Daytime Routes":"B C","Structure":"Subway","GTFS Latitude":"40.775594","GTFS Longitude":"-73.97641"}, +{"Station ID":"161","Complex ID":"614","GTFS Stop ID":"A24","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"59 St - Columbus Circle","Borough":"M","Daytime Routes":"A B C D","Structure":"Subway","GTFS Latitude":"40.768296","GTFS Longitude":"-73.981736"}, +{"Station ID":"162","Complex ID":"162","GTFS Stop ID":"A25","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"50 St","Borough":"M","Daytime Routes":"C E","Structure":"Subway","GTFS Latitude":"40.762456","GTFS Longitude":"-73.985984"}, +{"Station ID":"163","Complex ID":"611","GTFS Stop ID":"A27","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"42 St - Port Authority Bus Terminal","Borough":"M","Daytime Routes":"A C E","Structure":"Subway","GTFS Latitude":"40.757308","GTFS Longitude":"-73.989735"}, +{"Station ID":"164","Complex ID":"164","GTFS Stop ID":"A28","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"34 St - Penn Station","Borough":"M","Daytime Routes":"A C E","Structure":"Subway","GTFS Latitude":"40.752287","GTFS Longitude":"-73.993391"}, +{"Station ID":"165","Complex ID":"165","GTFS Stop ID":"A30","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"23 St","Borough":"M","Daytime Routes":"C E","Structure":"Subway","GTFS Latitude":"40.745906","GTFS Longitude":"-73.998041"}, +{"Station ID":"166","Complex ID":"618","GTFS Stop ID":"A31","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"14 St","Borough":"M","Daytime Routes":"A C E","Structure":"Subway","GTFS Latitude":"40.740893","GTFS Longitude":"-74.00169"}, +{"Station ID":"167","Complex ID":"167","GTFS Stop ID":"A32","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"W 4 St","Borough":"M","Daytime Routes":"A B C D E F M","Structure":"Subway","GTFS Latitude":"40.732338","GTFS Longitude":"-74.000495"}, +{"Station ID":"168","Complex ID":"168","GTFS Stop ID":"A33","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Spring St","Borough":"M","Daytime Routes":"C E","Structure":"Subway","GTFS Latitude":"40.726227","GTFS Longitude":"-74.003739"}, +{"Station ID":"169","Complex ID":"169","GTFS Stop ID":"A34","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Canal St","Borough":"M","Daytime Routes":"A C E","Structure":"Subway","GTFS Latitude":"40.720824","GTFS Longitude":"-74.005229"}, +{"Station ID":"170","Complex ID":"624","GTFS Stop ID":"A36","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Chambers St","Borough":"M","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.714111","GTFS Longitude":"-74.008585"}, +{"Station ID":"171","Complex ID":"624","GTFS Stop ID":"E01","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"World Trade Center","Borough":"M","Daytime Routes":"E","Structure":"Subway","GTFS Latitude":"40.712582","GTFS Longitude":"-74.009781"}, +{"Station ID":"172","Complex ID":"628","GTFS Stop ID":"A38","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Fulton St","Borough":"M","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.710197","GTFS Longitude":"-74.007691"}, +{"Station ID":"173","Complex ID":"173","GTFS Stop ID":"A40","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"High St","Borough":"Bk","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.699337","GTFS Longitude":"-73.990531"}, +{"Station ID":"174","Complex ID":"636","GTFS Stop ID":"A41","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Jay St - MetroTech","Borough":"Bk","Daytime Routes":"A C F","Structure":"Subway","GTFS Latitude":"40.692338","GTFS Longitude":"-73.987342"}, +{"Station ID":"175","Complex ID":"175","GTFS Stop ID":"A42","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Hoyt - Schermerhorn Sts","Borough":"Bk","Daytime Routes":"A C G","Structure":"Subway","GTFS Latitude":"40.688484","GTFS Longitude":"-73.985001"}, +{"Station ID":"176","Complex ID":"176","GTFS Stop ID":"A43","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Lafayette Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.686113","GTFS Longitude":"-73.973946"}, +{"Station ID":"177","Complex ID":"177","GTFS Stop ID":"A44","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Clinton - Washington Avs","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.683263","GTFS Longitude":"-73.965838"}, +{"Station ID":"178","Complex ID":"627","GTFS Stop ID":"A45","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Franklin Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.68138","GTFS Longitude":"-73.956848"}, +{"Station ID":"179","Complex ID":"179","GTFS Stop ID":"A46","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Nostrand Av","Borough":"Bk","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.680438","GTFS Longitude":"-73.950426"}, +{"Station ID":"180","Complex ID":"180","GTFS Stop ID":"A47","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Kingston - Throop Avs","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.679921","GTFS Longitude":"-73.940858"}, +{"Station ID":"181","Complex ID":"181","GTFS Stop ID":"A48","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Utica Av","Borough":"Bk","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.679364","GTFS Longitude":"-73.930729"}, +{"Station ID":"182","Complex ID":"182","GTFS Stop ID":"A49","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Ralph Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.678822","GTFS Longitude":"-73.920786"}, +{"Station ID":"183","Complex ID":"183","GTFS Stop ID":"A50","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Rockaway Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.67834","GTFS Longitude":"-73.911946"}, +{"Station ID":"184","Complex ID":"621","GTFS Stop ID":"A51","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Broadway Jct","Borough":"Bk","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.678334","GTFS Longitude":"-73.905316"}, +{"Station ID":"185","Complex ID":"185","GTFS Stop ID":"A52","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Liberty Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.674542","GTFS Longitude":"-73.896548"}, +{"Station ID":"186","Complex ID":"186","GTFS Stop ID":"A53","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Van Siclen Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.67271","GTFS Longitude":"-73.890358"}, +{"Station ID":"187","Complex ID":"187","GTFS Stop ID":"A54","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Shepherd Av","Borough":"Bk","Daytime Routes":"C","Structure":"Subway","GTFS Latitude":"40.67413","GTFS Longitude":"-73.88075"}, +{"Station ID":"188","Complex ID":"188","GTFS Stop ID":"A55","Division":"IND","Line":"8th Av - Fulton St","Stop Name":"Euclid Av","Borough":"Bk","Daytime Routes":"A C","Structure":"Subway","GTFS Latitude":"40.675377","GTFS Longitude":"-73.872106"}, +{"Station ID":"189","Complex ID":"189","GTFS Stop ID":"A57","Division":"IND","Line":"Liberty Av","Stop Name":"Grant Av","Borough":"Bk","Daytime Routes":"A","Structure":"Subway","GTFS Latitude":"40.677044","GTFS Longitude":"-73.86505"}, +{"Station ID":"190","Complex ID":"190","GTFS Stop ID":"A59","Division":"IND","Line":"Liberty Av","Stop Name":"80 St","Borough":"Q","Daytime Routes":"A","Structure":"Elevated","GTFS Latitude":"40.679371","GTFS Longitude":"-73.858992"}, +{"Station ID":"191","Complex ID":"191","GTFS Stop ID":"A60","Division":"IND","Line":"Liberty Av","Stop Name":"88 St","Borough":"Q","Daytime Routes":"A","Structure":"Elevated","GTFS Latitude":"40.679843","GTFS Longitude":"-73.85147"}, +{"Station ID":"192","Complex ID":"192","GTFS Stop ID":"A61","Division":"IND","Line":"Liberty Av","Stop Name":"Rockaway Blvd","Borough":"Q","Daytime Routes":"A","Structure":"Elevated","GTFS Latitude":"40.680429","GTFS Longitude":"-73.843853"}, +{"Station ID":"193","Complex ID":"193","GTFS Stop ID":"A63","Division":"IND","Line":"Liberty Av","Stop Name":"104 St","Borough":"Q","Daytime Routes":"A","Structure":"Elevated","GTFS Latitude":"40.681711","GTFS Longitude":"-73.837683"}, +{"Station ID":"194","Complex ID":"194","GTFS Stop ID":"A64","Division":"IND","Line":"Liberty Av","Stop Name":"111 St","Borough":"Q","Daytime Routes":"A","Structure":"Elevated","GTFS Latitude":"40.684331","GTFS Longitude":"-73.832163"}, +{"Station ID":"195","Complex ID":"195","GTFS Stop ID":"A65","Division":"IND","Line":"Liberty Av","Stop Name":"Ozone Park - Lefferts Blvd","Borough":"Q","Daytime Routes":"A","Structure":"Elevated","GTFS Latitude":"40.685951","GTFS Longitude":"-73.825798"}, +{"Station ID":"196","Complex ID":"196","GTFS Stop ID":"H01","Division":"IND","Line":"Rockaway","Stop Name":"Aqueduct Racetrack","Borough":"Q","Daytime Routes":"A","Structure":"At Grade","GTFS Latitude":"40.672097","GTFS Longitude":"-73.835919"}, +{"Station ID":"197","Complex ID":"197","GTFS Stop ID":"H02","Division":"IND","Line":"Rockaway","Stop Name":"Aqueduct - N Conduit Av","Borough":"Q","Daytime Routes":"A","Structure":"At Grade","GTFS Latitude":"40.668234","GTFS Longitude":"-73.834058"}, +{"Station ID":"198","Complex ID":"198","GTFS Stop ID":"H03","Division":"IND","Line":"Rockaway","Stop Name":"Howard Beach - JFK Airport","Borough":"Q","Daytime Routes":"A","Structure":"At Grade","GTFS Latitude":"40.660476","GTFS Longitude":"-73.830301"}, +{"Station ID":"199","Complex ID":"199","GTFS Stop ID":"H04","Division":"IND","Line":"Rockaway","Stop Name":"Broad Channel","Borough":"Q","Daytime Routes":"A S","Structure":"At Grade","GTFS Latitude":"40.608382","GTFS Longitude":"-73.815925"}, +{"Station ID":"200","Complex ID":"200","GTFS Stop ID":"H12","Division":"IND","Line":"Rockaway","Stop Name":"Beach 90 St","Borough":"Q","Daytime Routes":"A S","Structure":"Viaduct","GTFS Latitude":"40.588034","GTFS Longitude":"-73.813641"}, +{"Station ID":"201","Complex ID":"201","GTFS Stop ID":"H13","Division":"IND","Line":"Rockaway","Stop Name":"Beach 98 St","Borough":"Q","Daytime Routes":"A S","Structure":"Viaduct","GTFS Latitude":"40.585307","GTFS Longitude":"-73.820558"}, +{"Station ID":"202","Complex ID":"202","GTFS Stop ID":"H14","Division":"IND","Line":"Rockaway","Stop Name":"Beach 105 St","Borough":"Q","Daytime Routes":"A S","Structure":"Viaduct","GTFS Latitude":"40.583209","GTFS Longitude":"-73.827559"}, +{"Station ID":"203","Complex ID":"203","GTFS Stop ID":"H15","Division":"IND","Line":"Rockaway","Stop Name":"Rockaway Park - Beach 116 St","Borough":"Q","Daytime Routes":"A S","Structure":"At Grade","GTFS Latitude":"40.580903","GTFS Longitude":"-73.835592"}, +{"Station ID":"204","Complex ID":"204","GTFS Stop ID":"H06","Division":"IND","Line":"Rockaway","Stop Name":"Beach 67 St","Borough":"Q","Daytime Routes":"A","Structure":"Viaduct","GTFS Latitude":"40.590927","GTFS Longitude":"-73.796924"}, +{"Station ID":"205","Complex ID":"205","GTFS Stop ID":"H07","Division":"IND","Line":"Rockaway","Stop Name":"Beach 60 St","Borough":"Q","Daytime Routes":"A","Structure":"Viaduct","GTFS Latitude":"40.592374","GTFS Longitude":"-73.788522"}, +{"Station ID":"206","Complex ID":"206","GTFS Stop ID":"H08","Division":"IND","Line":"Rockaway","Stop Name":"Beach 44 St","Borough":"Q","Daytime Routes":"A","Structure":"Viaduct","GTFS Latitude":"40.592943","GTFS Longitude":"-73.776013"}, +{"Station ID":"207","Complex ID":"207","GTFS Stop ID":"H09","Division":"IND","Line":"Rockaway","Stop Name":"Beach 36 St","Borough":"Q","Daytime Routes":"A","Structure":"Viaduct","GTFS Latitude":"40.595398","GTFS Longitude":"-73.768175"}, +{"Station ID":"208","Complex ID":"208","GTFS Stop ID":"H10","Division":"IND","Line":"Rockaway","Stop Name":"Beach 25 St","Borough":"Q","Daytime Routes":"A","Structure":"Viaduct","GTFS Latitude":"40.600066","GTFS Longitude":"-73.761353"}, +{"Station ID":"209","Complex ID":"209","GTFS Stop ID":"H11","Division":"IND","Line":"Rockaway","Stop Name":"Far Rockaway - Mott Av","Borough":"Q","Daytime Routes":"A","Structure":"Viaduct","GTFS Latitude":"40.603995","GTFS Longitude":"-73.755405"}, +{"Station ID":"210","Complex ID":"210","GTFS Stop ID":"D01","Division":"IND","Line":"Concourse","Stop Name":"Norwood - 205 St","Borough":"Bx","Daytime Routes":"D","Structure":"Subway","GTFS Latitude":"40.874811","GTFS Longitude":"-73.878855"}, +{"Station ID":"211","Complex ID":"211","GTFS Stop ID":"D03","Division":"IND","Line":"Concourse","Stop Name":"Bedford Park Blvd","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.873244","GTFS Longitude":"-73.887138"}, +{"Station ID":"212","Complex ID":"212","GTFS Stop ID":"D04","Division":"IND","Line":"Concourse","Stop Name":"Kingsbridge Rd","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.866978","GTFS Longitude":"-73.893509"}, +{"Station ID":"213","Complex ID":"213","GTFS Stop ID":"D05","Division":"IND","Line":"Concourse","Stop Name":"Fordham Rd","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.861296","GTFS Longitude":"-73.897749"}, +{"Station ID":"214","Complex ID":"214","GTFS Stop ID":"D06","Division":"IND","Line":"Concourse","Stop Name":"182-183 Sts","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.856093","GTFS Longitude":"-73.900741"}, +{"Station ID":"215","Complex ID":"215","GTFS Stop ID":"D07","Division":"IND","Line":"Concourse","Stop Name":"Tremont Av","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.85041","GTFS Longitude":"-73.905227"}, +{"Station ID":"216","Complex ID":"216","GTFS Stop ID":"D08","Division":"IND","Line":"Concourse","Stop Name":"174-175 Sts","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.8459","GTFS Longitude":"-73.910136"}, +{"Station ID":"217","Complex ID":"217","GTFS Stop ID":"D09","Division":"IND","Line":"Concourse","Stop Name":"170 St","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.839306","GTFS Longitude":"-73.9134"}, +{"Station ID":"218","Complex ID":"218","GTFS Stop ID":"D10","Division":"IND","Line":"Concourse","Stop Name":"167 St","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.833771","GTFS Longitude":"-73.91844"}, +{"Station ID":"219","Complex ID":"604","GTFS Stop ID":"D11","Division":"IND","Line":"Concourse","Stop Name":"161 St - Yankee Stadium","Borough":"Bx","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.827905","GTFS Longitude":"-73.925651"}, +{"Station ID":"220","Complex ID":"220","GTFS Stop ID":"D12","Division":"IND","Line":"Concourse","Stop Name":"155 St","Borough":"M","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.830135","GTFS Longitude":"-73.938209"}, +{"Station ID":"221","Complex ID":"221","GTFS Stop ID":"B04","Division":"IND","Line":"63rd St","Stop Name":"21 St - Queensbridge","Borough":"Q","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.754203","GTFS Longitude":"-73.942836"}, +{"Station ID":"222","Complex ID":"222","GTFS Stop ID":"B06","Division":"IND","Line":"63rd St","Stop Name":"Roosevelt Island","Borough":"M","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.759145","GTFS Longitude":"-73.95326"}, +{"Station ID":"223","Complex ID":"223","GTFS Stop ID":"B08","Division":"IND","Line":"63rd St","Stop Name":"Lexington Av/63 St","Borough":"M","Daytime Routes":"F Q","Structure":"Subway","GTFS Latitude":"40.764629","GTFS Longitude":"-73.966113"}, +{"Station ID":"224","Complex ID":"224","GTFS Stop ID":"B10","Division":"IND","Line":"6th Av - Culver","Stop Name":"57 St","Borough":"M","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.763972","GTFS Longitude":"-73.97745"}, +{"Station ID":"225","Complex ID":"225","GTFS Stop ID":"D15","Division":"IND","Line":"6th Av - Culver","Stop Name":"47-50 Sts - Rockefeller Ctr","Borough":"M","Daytime Routes":"B D F M","Structure":"Subway","GTFS Latitude":"40.758663","GTFS Longitude":"-73.981329"}, +{"Station ID":"226","Complex ID":"609","GTFS Stop ID":"D16","Division":"IND","Line":"6th Av - Culver","Stop Name":"42 St - Bryant Pk","Borough":"M","Daytime Routes":"B D F M","Structure":"Subway","GTFS Latitude":"40.754222","GTFS Longitude":"-73.984569"}, +{"Station ID":"227","Complex ID":"607","GTFS Stop ID":"D17","Division":"IND","Line":"6th Av - Culver","Stop Name":"34 St - Herald Sq","Borough":"M","Daytime Routes":"B D F M","Structure":"Subway","GTFS Latitude":"40.749719","GTFS Longitude":"-73.987823"}, +{"Station ID":"228","Complex ID":"228","GTFS Stop ID":"D18","Division":"IND","Line":"6th Av - Culver","Stop Name":"23 St","Borough":"M","Daytime Routes":"F M","Structure":"Subway","GTFS Latitude":"40.742878","GTFS Longitude":"-73.992821"}, +{"Station ID":"229","Complex ID":"601","GTFS Stop ID":"D19","Division":"IND","Line":"6th Av - Culver","Stop Name":"14 St","Borough":"M","Daytime Routes":"F M","Structure":"Subway","GTFS Latitude":"40.738228","GTFS Longitude":"-73.996209"}, +{"Station ID":"230","Complex ID":"619","GTFS Stop ID":"D21","Division":"IND","Line":"6th Av - Culver","Stop Name":"Broadway-Lafayette St","Borough":"M","Daytime Routes":"B D F M","Structure":"Subway","GTFS Latitude":"40.725297","GTFS Longitude":"-73.996204"}, +{"Station ID":"231","Complex ID":"231","GTFS Stop ID":"D22","Division":"IND","Line":"6th Av - Culver","Stop Name":"Grand St","Borough":"M","Daytime Routes":"B D","Structure":"Subway","GTFS Latitude":"40.718267","GTFS Longitude":"-73.993753"}, +{"Station ID":"232","Complex ID":"232","GTFS Stop ID":"F14","Division":"IND","Line":"6th Av - Culver","Stop Name":"2 Av","Borough":"M","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.723402","GTFS Longitude":"-73.989938"}, +{"Station ID":"233","Complex ID":"625","GTFS Stop ID":"F15","Division":"IND","Line":"6th Av - Culver","Stop Name":"Delancey St","Borough":"M","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.718611","GTFS Longitude":"-73.988114"}, +{"Station ID":"234","Complex ID":"234","GTFS Stop ID":"F16","Division":"IND","Line":"6th Av - Culver","Stop Name":"East Broadway","Borough":"M","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.713715","GTFS Longitude":"-73.990173"}, +{"Station ID":"235","Complex ID":"235","GTFS Stop ID":"F18","Division":"IND","Line":"6th Av - Culver","Stop Name":"York St","Borough":"Bk","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.701397","GTFS Longitude":"-73.986751"}, +{"Station ID":"236","Complex ID":"236","GTFS Stop ID":"F20","Division":"IND","Line":"6th Av - Culver","Stop Name":"Bergen St","Borough":"Bk","Daytime Routes":"F G","Structure":"Subway","GTFS Latitude":"40.686145","GTFS Longitude":"-73.990862"}, +{"Station ID":"237","Complex ID":"237","GTFS Stop ID":"F21","Division":"IND","Line":"6th Av - Culver","Stop Name":"Carroll St","Borough":"Bk","Daytime Routes":"F G","Structure":"Subway","GTFS Latitude":"40.680303","GTFS Longitude":"-73.995048"}, +{"Station ID":"238","Complex ID":"238","GTFS Stop ID":"F22","Division":"IND","Line":"6th Av - Culver","Stop Name":"Smith - 9 Sts","Borough":"Bk","Daytime Routes":"F G","Structure":"Viaduct","GTFS Latitude":"40.67358","GTFS Longitude":"-73.995959"}, +{"Station ID":"239","Complex ID":"608","GTFS Stop ID":"F23","Division":"IND","Line":"6th Av - Culver","Stop Name":"4 Av","Borough":"Bk","Daytime Routes":"F G","Structure":"Viaduct","GTFS Latitude":"40.670272","GTFS Longitude":"-73.989779"}, +{"Station ID":"240","Complex ID":"240","GTFS Stop ID":"F24","Division":"IND","Line":"6th Av - Culver","Stop Name":"7 Av","Borough":"Bk","Daytime Routes":"F G","Structure":"Subway","GTFS Latitude":"40.666271","GTFS Longitude":"-73.980305"}, +{"Station ID":"241","Complex ID":"241","GTFS Stop ID":"F25","Division":"IND","Line":"6th Av - Culver","Stop Name":"15 St - Prospect Park","Borough":"Bk","Daytime Routes":"F G","Structure":"Subway","GTFS Latitude":"40.660365","GTFS Longitude":"-73.979493"}, +{"Station ID":"242","Complex ID":"242","GTFS Stop ID":"F26","Division":"IND","Line":"6th Av - Culver","Stop Name":"Fort Hamilton Pkwy","Borough":"Bk","Daytime Routes":"F G","Structure":"Subway","GTFS Latitude":"40.650782","GTFS Longitude":"-73.975776"}, +{"Station ID":"243","Complex ID":"243","GTFS Stop ID":"F27","Division":"IND","Line":"6th Av - Culver","Stop Name":"Church Av","Borough":"Bk","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.644041","GTFS Longitude":"-73.979678"}, +{"Station ID":"244","Complex ID":"244","GTFS Stop ID":"F29","Division":"IND","Line":"6th Av - Culver","Stop Name":"Ditmas Av","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.636119","GTFS Longitude":"-73.978172"}, +{"Station ID":"245","Complex ID":"245","GTFS Stop ID":"F30","Division":"IND","Line":"6th Av - Culver","Stop Name":"18 Av","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.629755","GTFS Longitude":"-73.976971"}, +{"Station ID":"246","Complex ID":"246","GTFS Stop ID":"F31","Division":"IND","Line":"6th Av - Culver","Stop Name":"Avenue I","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.625322","GTFS Longitude":"-73.976127"}, +{"Station ID":"247","Complex ID":"247","GTFS Stop ID":"F32","Division":"IND","Line":"6th Av - Culver","Stop Name":"Bay Pkwy","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.620769","GTFS Longitude":"-73.975264"}, +{"Station ID":"248","Complex ID":"248","GTFS Stop ID":"F33","Division":"IND","Line":"6th Av - Culver","Stop Name":"Avenue N","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.61514","GTFS Longitude":"-73.974197"}, +{"Station ID":"249","Complex ID":"249","GTFS Stop ID":"F34","Division":"IND","Line":"6th Av - Culver","Stop Name":"Avenue P","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.608944","GTFS Longitude":"-73.973022"}, +{"Station ID":"250","Complex ID":"250","GTFS Stop ID":"F35","Division":"IND","Line":"6th Av - Culver","Stop Name":"Kings Hwy","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.603217","GTFS Longitude":"-73.972361"}, +{"Station ID":"251","Complex ID":"251","GTFS Stop ID":"F36","Division":"IND","Line":"6th Av - Culver","Stop Name":"Avenue U","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.596063","GTFS Longitude":"-73.973357"}, +{"Station ID":"252","Complex ID":"252","GTFS Stop ID":"F38","Division":"IND","Line":"6th Av - Culver","Stop Name":"Avenue X","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.58962","GTFS Longitude":"-73.97425"}, +{"Station ID":"253","Complex ID":"253","GTFS Stop ID":"F39","Division":"IND","Line":"6th Av - Culver","Stop Name":"Neptune Av","Borough":"Bk","Daytime Routes":"F","Structure":"Elevated","GTFS Latitude":"40.581011","GTFS Longitude":"-73.974574"}, +{"Station ID":"254","Complex ID":"254","GTFS Stop ID":"F01","Division":"IND","Line":"Queens - Archer","Stop Name":"Jamaica - 179 St","Borough":"Q","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.712646","GTFS Longitude":"-73.783817"}, +{"Station ID":"255","Complex ID":"255","GTFS Stop ID":"F02","Division":"IND","Line":"Queens - Archer","Stop Name":"169 St","Borough":"Q","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.71047","GTFS Longitude":"-73.793604"}, +{"Station ID":"256","Complex ID":"256","GTFS Stop ID":"F03","Division":"IND","Line":"Queens - Archer","Stop Name":"Parsons Blvd","Borough":"Q","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.707564","GTFS Longitude":"-73.803326"}, +{"Station ID":"257","Complex ID":"257","GTFS Stop ID":"F04","Division":"IND","Line":"Queens - Archer","Stop Name":"Sutphin Blvd","Borough":"Q","Daytime Routes":"F","Structure":"Subway","GTFS Latitude":"40.70546","GTFS Longitude":"-73.810708"}, +{"Station ID":"258","Complex ID":"258","GTFS Stop ID":"F05","Division":"IND","Line":"Queens - Archer","Stop Name":"Briarwood - Van Wyck Blvd","Borough":"Q","Daytime Routes":"E F","Structure":"Subway","GTFS Latitude":"40.709179","GTFS Longitude":"-73.820574"}, +{"Station ID":"259","Complex ID":"259","GTFS Stop ID":"F06","Division":"IND","Line":"Queens - Archer","Stop Name":"Kew Gardens - Union Tpke","Borough":"Q","Daytime Routes":"E F","Structure":"Subway","GTFS Latitude":"40.714441","GTFS Longitude":"-73.831008"}, +{"Station ID":"260","Complex ID":"260","GTFS Stop ID":"F07","Division":"IND","Line":"Queens - Archer","Stop Name":"75 Av","Borough":"Q","Daytime Routes":"E F","Structure":"Subway","GTFS Latitude":"40.718331","GTFS Longitude":"-73.837324"}, +{"Station ID":"261","Complex ID":"261","GTFS Stop ID":"G08","Division":"IND","Line":"Queens - Archer","Stop Name":"Forest Hills - 71 Av","Borough":"Q","Daytime Routes":"E F M R","Structure":"Subway","GTFS Latitude":"40.721691","GTFS Longitude":"-73.844521"}, +{"Station ID":"262","Complex ID":"262","GTFS Stop ID":"G09","Division":"IND","Line":"Queens - Archer","Stop Name":"67 Av","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.726523","GTFS Longitude":"-73.852719"}, +{"Station ID":"263","Complex ID":"263","GTFS Stop ID":"G10","Division":"IND","Line":"Queens - Archer","Stop Name":"63 Dr - Rego Park","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.729846","GTFS Longitude":"-73.861604"}, +{"Station ID":"264","Complex ID":"264","GTFS Stop ID":"G11","Division":"IND","Line":"Queens - Archer","Stop Name":"Woodhaven Blvd","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.733106","GTFS Longitude":"-73.869229"}, +{"Station ID":"265","Complex ID":"265","GTFS Stop ID":"G12","Division":"IND","Line":"Queens - Archer","Stop Name":"Grand Av - Newtown","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.737015","GTFS Longitude":"-73.877223"}, +{"Station ID":"266","Complex ID":"266","GTFS Stop ID":"G13","Division":"IND","Line":"Queens - Archer","Stop Name":"Elmhurst Av","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.742454","GTFS Longitude":"-73.882017"}, +{"Station ID":"267","Complex ID":"616","GTFS Stop ID":"G14","Division":"IND","Line":"Queens - Archer","Stop Name":"Jackson Hts - Roosevelt Av","Borough":"Q","Daytime Routes":"E F M R","Structure":"Subway","GTFS Latitude":"40.746644","GTFS Longitude":"-73.891338"}, +{"Station ID":"268","Complex ID":"268","GTFS Stop ID":"G15","Division":"IND","Line":"Queens - Archer","Stop Name":"65 St","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.749669","GTFS Longitude":"-73.898453"}, +{"Station ID":"269","Complex ID":"269","GTFS Stop ID":"G16","Division":"IND","Line":"Queens - Archer","Stop Name":"Northern Blvd","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.752885","GTFS Longitude":"-73.906006"}, +{"Station ID":"270","Complex ID":"270","GTFS Stop ID":"G18","Division":"IND","Line":"Queens - Archer","Stop Name":"46 St","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.756312","GTFS Longitude":"-73.913333"}, +{"Station ID":"271","Complex ID":"271","GTFS Stop ID":"G19","Division":"IND","Line":"Queens - Archer","Stop Name":"Steinway St","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.756879","GTFS Longitude":"-73.92074"}, +{"Station ID":"272","Complex ID":"272","GTFS Stop ID":"G20","Division":"IND","Line":"Queens - Archer","Stop Name":"36 St","Borough":"Q","Daytime Routes":"M R","Structure":"Subway","GTFS Latitude":"40.752039","GTFS Longitude":"-73.928781"}, +{"Station ID":"273","Complex ID":"273","GTFS Stop ID":"G21","Division":"IND","Line":"Queens - Archer","Stop Name":"Queens Plaza","Borough":"Q","Daytime Routes":"E M R","Structure":"Subway","GTFS Latitude":"40.748973","GTFS Longitude":"-73.937243"}, +{"Station ID":"274","Complex ID":"606","GTFS Stop ID":"F09","Division":"IND","Line":"Queens - Archer","Stop Name":"Court Sq","Borough":"Q","Daytime Routes":"E M","Structure":"Subway","GTFS Latitude":"40.747846","GTFS Longitude":"-73.946"}, +{"Station ID":"275","Complex ID":"612","GTFS Stop ID":"F11","Division":"IND","Line":"Queens - Archer","Stop Name":"Lexington Av/53 St","Borough":"M","Daytime Routes":"E M","Structure":"Subway","GTFS Latitude":"40.757552","GTFS Longitude":"-73.969055"}, +{"Station ID":"276","Complex ID":"276","GTFS Stop ID":"F12","Division":"IND","Line":"Queens - Archer","Stop Name":"5 Av/53 St","Borough":"M","Daytime Routes":"E M","Structure":"Subway","GTFS Latitude":"40.760167","GTFS Longitude":"-73.975224"}, +{"Station ID":"277","Complex ID":"277","GTFS Stop ID":"D14","Division":"IND","Line":"Queens - Archer","Stop Name":"7 Av","Borough":"M","Daytime Routes":"B D E","Structure":"Subway","GTFS Latitude":"40.762862","GTFS Longitude":"-73.981637"}, +{"Station ID":"278","Complex ID":"278","GTFS Stop ID":"G05","Division":"IND","Line":"Queens - Archer","Stop Name":"Jamaica Center - Parsons/Archer","Borough":"Q","Daytime Routes":"E J Z","Structure":"Subway","GTFS Latitude":"40.702147","GTFS Longitude":"-73.801109"}, +{"Station ID":"279","Complex ID":"279","GTFS Stop ID":"G06","Division":"IND","Line":"Queens - Archer","Stop Name":"Sutphin Blvd - Archer Av - JFK Airport","Borough":"Q","Daytime Routes":"E J Z","Structure":"Subway","GTFS Latitude":"40.700486","GTFS Longitude":"-73.807969"}, +{"Station ID":"280","Complex ID":"280","GTFS Stop ID":"G07","Division":"IND","Line":"Queens - Archer","Stop Name":"Jamaica - Van Wyck","Borough":"Q","Daytime Routes":"E","Structure":"Subway","GTFS Latitude":"40.702566","GTFS Longitude":"-73.816859"}, +{"Station ID":"281","Complex ID":"606","GTFS Stop ID":"G22","Division":"IND","Line":"Crosstown","Stop Name":"Court Sq","Borough":"Q","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.746554","GTFS Longitude":"-73.943832"}, +{"Station ID":"282","Complex ID":"282","GTFS Stop ID":"G24","Division":"IND","Line":"Crosstown","Stop Name":"21 St","Borough":"Q","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.744065","GTFS Longitude":"-73.949724"}, +{"Station ID":"283","Complex ID":"283","GTFS Stop ID":"G26","Division":"IND","Line":"Crosstown","Stop Name":"Greenpoint Av","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.731352","GTFS Longitude":"-73.954449"}, +{"Station ID":"284","Complex ID":"284","GTFS Stop ID":"G28","Division":"IND","Line":"Crosstown","Stop Name":"Nassau Av","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.724635","GTFS Longitude":"-73.951277"}, +{"Station ID":"285","Complex ID":"629","GTFS Stop ID":"G29","Division":"IND","Line":"Crosstown","Stop Name":"Metropolitan Av","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.712792","GTFS Longitude":"-73.951418"}, +{"Station ID":"286","Complex ID":"286","GTFS Stop ID":"G30","Division":"IND","Line":"Crosstown","Stop Name":"Broadway","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.706092","GTFS Longitude":"-73.950308"}, +{"Station ID":"287","Complex ID":"287","GTFS Stop ID":"G31","Division":"IND","Line":"Crosstown","Stop Name":"Flushing Av","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.700377","GTFS Longitude":"-73.950234"}, +{"Station ID":"288","Complex ID":"288","GTFS Stop ID":"G32","Division":"IND","Line":"Crosstown","Stop Name":"Myrtle - Willoughby Avs","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.694568","GTFS Longitude":"-73.949046"}, +{"Station ID":"289","Complex ID":"289","GTFS Stop ID":"G33","Division":"IND","Line":"Crosstown","Stop Name":"Bedford - Nostrand Avs","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.689627","GTFS Longitude":"-73.953522"}, +{"Station ID":"290","Complex ID":"290","GTFS Stop ID":"G34","Division":"IND","Line":"Crosstown","Stop Name":"Classon Av","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.688873","GTFS Longitude":"-73.96007"}, +{"Station ID":"291","Complex ID":"291","GTFS Stop ID":"G35","Division":"IND","Line":"Crosstown","Stop Name":"Clinton - Washington Avs","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.688089","GTFS Longitude":"-73.966839"}, +{"Station ID":"292","Complex ID":"292","GTFS Stop ID":"G36","Division":"IND","Line":"Crosstown","Stop Name":"Fulton St","Borough":"Bk","Daytime Routes":"G","Structure":"Subway","GTFS Latitude":"40.687119","GTFS Longitude":"-73.975375"}, +{"Station ID":"293","Complex ID":"293","GTFS Stop ID":"101","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Van Cortlandt Park - 242 St","Borough":"Bx","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.889248","GTFS Longitude":"-73.898583"}, +{"Station ID":"294","Complex ID":"294","GTFS Stop ID":"103","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"238 St","Borough":"Bx","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.884667","GTFS Longitude":"-73.90087"}, +{"Station ID":"295","Complex ID":"295","GTFS Stop ID":"104","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"231 St","Borough":"Bx","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.878856","GTFS Longitude":"-73.904834"}, +{"Station ID":"296","Complex ID":"296","GTFS Stop ID":"106","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Marble Hill - 225 St","Borough":"M","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.874561","GTFS Longitude":"-73.909831"}, +{"Station ID":"297","Complex ID":"297","GTFS Stop ID":"107","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"215 St","Borough":"M","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.869444","GTFS Longitude":"-73.915279"}, +{"Station ID":"298","Complex ID":"298","GTFS Stop ID":"108","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"207 St","Borough":"M","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.864621","GTFS Longitude":"-73.918822"}, +{"Station ID":"299","Complex ID":"299","GTFS Stop ID":"109","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Dyckman St","Borough":"M","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.860531","GTFS Longitude":"-73.925536"}, +{"Station ID":"300","Complex ID":"300","GTFS Stop ID":"110","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"191 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.855225","GTFS Longitude":"-73.929412"}, +{"Station ID":"301","Complex ID":"301","GTFS Stop ID":"111","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"181 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.849505","GTFS Longitude":"-73.933596"}, +{"Station ID":"302","Complex ID":"605","GTFS Stop ID":"112","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"168 St - Washington Hts","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.840556","GTFS Longitude":"-73.940133"}, +{"Station ID":"303","Complex ID":"303","GTFS Stop ID":"113","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"157 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.834041","GTFS Longitude":"-73.94489"}, +{"Station ID":"304","Complex ID":"304","GTFS Stop ID":"114","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"145 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.826551","GTFS Longitude":"-73.95036"}, +{"Station ID":"305","Complex ID":"305","GTFS Stop ID":"115","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"137 St - City College","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.822008","GTFS Longitude":"-73.953676"}, +{"Station ID":"306","Complex ID":"306","GTFS Stop ID":"116","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"125 St","Borough":"M","Daytime Routes":"1","Structure":"Elevated","GTFS Latitude":"40.815581","GTFS Longitude":"-73.958372"}, +{"Station ID":"307","Complex ID":"307","GTFS Stop ID":"117","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"116 St - Columbia University","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.807722","GTFS Longitude":"-73.96411"}, +{"Station ID":"308","Complex ID":"308","GTFS Stop ID":"118","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Cathedral Pkwy","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.803967","GTFS Longitude":"-73.966847"}, +{"Station ID":"309","Complex ID":"309","GTFS Stop ID":"119","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"103 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.799446","GTFS Longitude":"-73.968379"}, +{"Station ID":"310","Complex ID":"310","GTFS Stop ID":"120","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"96 St","Borough":"M","Daytime Routes":"1 2 3","Structure":"Subway","GTFS Latitude":"40.793919","GTFS Longitude":"-73.972323"}, +{"Station ID":"311","Complex ID":"311","GTFS Stop ID":"121","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"86 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.788644","GTFS Longitude":"-73.976218"}, +{"Station ID":"312","Complex ID":"312","GTFS Stop ID":"122","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"79 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.783934","GTFS Longitude":"-73.979917"}, +{"Station ID":"313","Complex ID":"313","GTFS Stop ID":"123","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"72 St","Borough":"M","Daytime Routes":"1 2 3","Structure":"Subway","GTFS Latitude":"40.778453","GTFS Longitude":"-73.98197"}, +{"Station ID":"314","Complex ID":"314","GTFS Stop ID":"124","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"66 St - Lincoln Center","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.77344","GTFS Longitude":"-73.982209"}, +{"Station ID":"315","Complex ID":"614","GTFS Stop ID":"125","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"59 St - Columbus Circle","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.768247","GTFS Longitude":"-73.981929"}, +{"Station ID":"316","Complex ID":"316","GTFS Stop ID":"126","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"50 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.761728","GTFS Longitude":"-73.983849"}, +{"Station ID":"317","Complex ID":"611","GTFS Stop ID":"127","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Times Sq - 42 St","Borough":"M","Daytime Routes":"1 2 3","Structure":"Subway","GTFS Latitude":"40.75529","GTFS Longitude":"-73.987495"}, +{"Station ID":"318","Complex ID":"318","GTFS Stop ID":"128","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"34 St - Penn Station","Borough":"M","Daytime Routes":"1 2 3","Structure":"Subway","GTFS Latitude":"40.750373","GTFS Longitude":"-73.991057"}, +{"Station ID":"319","Complex ID":"319","GTFS Stop ID":"129","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"28 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.747215","GTFS Longitude":"-73.993365"}, +{"Station ID":"320","Complex ID":"320","GTFS Stop ID":"130","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"23 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.744081","GTFS Longitude":"-73.995657"}, +{"Station ID":"321","Complex ID":"321","GTFS Stop ID":"131","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"18 St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.74104","GTFS Longitude":"-73.997871"}, +{"Station ID":"322","Complex ID":"601","GTFS Stop ID":"132","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"14 St","Borough":"M","Daytime Routes":"1 2 3","Structure":"Subway","GTFS Latitude":"40.737826","GTFS Longitude":"-74.000201"}, +{"Station ID":"323","Complex ID":"323","GTFS Stop ID":"133","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Christopher St - Sheridan Sq","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.733422","GTFS Longitude":"-74.002906"}, +{"Station ID":"324","Complex ID":"324","GTFS Stop ID":"134","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Houston St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.728251","GTFS Longitude":"-74.005367"}, +{"Station ID":"325","Complex ID":"325","GTFS Stop ID":"135","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Canal St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.722854","GTFS Longitude":"-74.006277"}, +{"Station ID":"326","Complex ID":"326","GTFS Stop ID":"136","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Franklin St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.719318","GTFS Longitude":"-74.006886"}, +{"Station ID":"327","Complex ID":"327","GTFS Stop ID":"137","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Chambers St","Borough":"M","Daytime Routes":"1 2 3","Structure":"Subway","GTFS Latitude":"40.715478","GTFS Longitude":"-74.009266"}, +{"Station ID":"328","Complex ID":"328","GTFS Stop ID":"138","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Cortlandt St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.711835","GTFS Longitude":"-74.012188"}, +{"Station ID":"329","Complex ID":"329","GTFS Stop ID":"139","Division":"IRT","Line":"Broadway - 7Av","Stop Name":"Rector St","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.707513","GTFS Longitude":"-74.013783"}, +{"Station ID":"330","Complex ID":"635","GTFS Stop ID":"140","Division":"IRT","Line":"South Ferry Loop","Stop Name":"South Ferry Loop","Borough":"M","Daytime Routes":"1","Structure":"Subway","GTFS Latitude":"40.701411","GTFS Longitude":"-74.013205"}, +{"Station ID":"331","Complex ID":"624","GTFS Stop ID":"228","Division":"IRT","Line":"Clark St","Stop Name":"Park Pl","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.713051","GTFS Longitude":"-74.008811"}, +{"Station ID":"332","Complex ID":"628","GTFS Stop ID":"229","Division":"IRT","Line":"Clark St","Stop Name":"Fulton St","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.709416","GTFS Longitude":"-74.006571"}, +{"Station ID":"333","Complex ID":"333","GTFS Stop ID":"230","Division":"IRT","Line":"Clark St","Stop Name":"Wall St","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.706821","GTFS Longitude":"-74.0091"}, +{"Station ID":"334","Complex ID":"334","GTFS Stop ID":"231","Division":"IRT","Line":"Clark St","Stop Name":"Clark St","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.697466","GTFS Longitude":"-73.993086"}, +{"Station ID":"335","Complex ID":"620","GTFS Stop ID":"232","Division":"IRT","Line":"Clark St","Stop Name":"Borough Hall","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.693219","GTFS Longitude":"-73.989998"}, +{"Station ID":"336","Complex ID":"336","GTFS Stop ID":"233","Division":"IRT","Line":"Eastern Pky","Stop Name":"Hoyt St","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.690545","GTFS Longitude":"-73.985065"}, +{"Station ID":"337","Complex ID":"337","GTFS Stop ID":"234","Division":"IRT","Line":"Eastern Pky","Stop Name":"Nevins St","Borough":"Bk","Daytime Routes":"2 3 4 5","Structure":"Subway","GTFS Latitude":"40.688246","GTFS Longitude":"-73.980492"}, +{"Station ID":"338","Complex ID":"617","GTFS Stop ID":"235","Division":"IRT","Line":"Eastern Pky","Stop Name":"Atlantic Av - Barclays Ctr","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.684359","GTFS Longitude":"-73.977666"}, +{"Station ID":"339","Complex ID":"339","GTFS Stop ID":"236","Division":"IRT","Line":"Eastern Pky","Stop Name":"Bergen St","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.680829","GTFS Longitude":"-73.975098"}, +{"Station ID":"340","Complex ID":"340","GTFS Stop ID":"237","Division":"IRT","Line":"Eastern Pky","Stop Name":"Grand Army Plaza","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.675235","GTFS Longitude":"-73.971046"}, +{"Station ID":"341","Complex ID":"341","GTFS Stop ID":"238","Division":"IRT","Line":"Eastern Pky","Stop Name":"Eastern Pkwy - Brooklyn Museum","Borough":"Bk","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.671987","GTFS Longitude":"-73.964375"}, +{"Station ID":"342","Complex ID":"626","GTFS Stop ID":"239","Division":"IRT","Line":"Eastern Pky","Stop Name":"Franklin Av","Borough":"Bk","Daytime Routes":"2 3 4 5","Structure":"Subway","GTFS Latitude":"40.670682","GTFS Longitude":"-73.958131"}, +{"Station ID":"343","Complex ID":"343","GTFS Stop ID":"248","Division":"IRT","Line":"Eastern Pky","Stop Name":"Nostrand Av","Borough":"Bk","Daytime Routes":"3","Structure":"Subway","GTFS Latitude":"40.669847","GTFS Longitude":"-73.950466"}, +{"Station ID":"344","Complex ID":"344","GTFS Stop ID":"249","Division":"IRT","Line":"Eastern Pky","Stop Name":"Kingston Av","Borough":"Bk","Daytime Routes":"3","Structure":"Subway","GTFS Latitude":"40.669399","GTFS Longitude":"-73.942161"}, +{"Station ID":"345","Complex ID":"345","GTFS Stop ID":"250","Division":"IRT","Line":"Eastern Pky","Stop Name":"Crown Hts - Utica Av","Borough":"Bk","Daytime Routes":"3 4","Structure":"Subway","GTFS Latitude":"40.668897","GTFS Longitude":"-73.932942"}, +{"Station ID":"346","Complex ID":"346","GTFS Stop ID":"251","Division":"IRT","Line":"Eastern Pky","Stop Name":"Sutter Av - Rutland Rd","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.664717","GTFS Longitude":"-73.92261"}, +{"Station ID":"347","Complex ID":"347","GTFS Stop ID":"252","Division":"IRT","Line":"Eastern Pky","Stop Name":"Saratoga Av","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.661453","GTFS Longitude":"-73.916327"}, +{"Station ID":"348","Complex ID":"348","GTFS Stop ID":"253","Division":"IRT","Line":"Eastern Pky","Stop Name":"Rockaway Av","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.662549","GTFS Longitude":"-73.908946"}, +{"Station ID":"349","Complex ID":"349","GTFS Stop ID":"254","Division":"IRT","Line":"Eastern Pky","Stop Name":"Junius St","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.663515","GTFS Longitude":"-73.902447"}, +{"Station ID":"350","Complex ID":"350","GTFS Stop ID":"255","Division":"IRT","Line":"Eastern Pky","Stop Name":"Pennsylvania Av","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.664635","GTFS Longitude":"-73.894895"}, +{"Station ID":"351","Complex ID":"351","GTFS Stop ID":"256","Division":"IRT","Line":"Eastern Pky","Stop Name":"Van Siclen Av","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.665449","GTFS Longitude":"-73.889395"}, +{"Station ID":"352","Complex ID":"352","GTFS Stop ID":"257","Division":"IRT","Line":"Eastern Pky","Stop Name":"New Lots Av","Borough":"Bk","Daytime Routes":"3","Structure":"Elevated","GTFS Latitude":"40.666235","GTFS Longitude":"-73.884079"}, +{"Station ID":"353","Complex ID":"353","GTFS Stop ID":"241","Division":"IRT","Line":"Nostrand","Stop Name":"President St","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.667883","GTFS Longitude":"-73.950683"}, +{"Station ID":"354","Complex ID":"354","GTFS Stop ID":"242","Division":"IRT","Line":"Nostrand","Stop Name":"Sterling St","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.662742","GTFS Longitude":"-73.95085"}, +{"Station ID":"355","Complex ID":"355","GTFS Stop ID":"243","Division":"IRT","Line":"Nostrand","Stop Name":"Winthrop St","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.656652","GTFS Longitude":"-73.9502"}, +{"Station ID":"356","Complex ID":"356","GTFS Stop ID":"244","Division":"IRT","Line":"Nostrand","Stop Name":"Church Av","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.650843","GTFS Longitude":"-73.949575"}, +{"Station ID":"357","Complex ID":"357","GTFS Stop ID":"245","Division":"IRT","Line":"Nostrand","Stop Name":"Beverly Rd","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.645098","GTFS Longitude":"-73.948959"}, +{"Station ID":"358","Complex ID":"358","GTFS Stop ID":"246","Division":"IRT","Line":"Nostrand","Stop Name":"Newkirk Av","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.639967","GTFS Longitude":"-73.948411"}, +{"Station ID":"359","Complex ID":"359","GTFS Stop ID":"247","Division":"IRT","Line":"Nostrand","Stop Name":"Flatbush Av - Brooklyn College","Borough":"Bk","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.632836","GTFS Longitude":"-73.947642"}, +{"Station ID":"360","Complex ID":"360","GTFS Stop ID":"601","Division":"IRT","Line":"Pelham","Stop Name":"Pelham Bay Park","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.852462","GTFS Longitude":"-73.828121"}, +{"Station ID":"361","Complex ID":"361","GTFS Stop ID":"602","Division":"IRT","Line":"Pelham","Stop Name":"Buhre Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.84681","GTFS Longitude":"-73.832569"}, +{"Station ID":"362","Complex ID":"362","GTFS Stop ID":"603","Division":"IRT","Line":"Pelham","Stop Name":"Middletown Rd","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.843863","GTFS Longitude":"-73.836322"}, +{"Station ID":"363","Complex ID":"363","GTFS Stop ID":"604","Division":"IRT","Line":"Pelham","Stop Name":"Westchester Sq - E Tremont Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.839892","GTFS Longitude":"-73.842952"}, +{"Station ID":"364","Complex ID":"364","GTFS Stop ID":"606","Division":"IRT","Line":"Pelham","Stop Name":"Zerega Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.836488","GTFS Longitude":"-73.847036"}, +{"Station ID":"365","Complex ID":"365","GTFS Stop ID":"607","Division":"IRT","Line":"Pelham","Stop Name":"Castle Hill Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.834255","GTFS Longitude":"-73.851222"}, +{"Station ID":"366","Complex ID":"366","GTFS Stop ID":"608","Division":"IRT","Line":"Pelham","Stop Name":"Parkchester","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.833226","GTFS Longitude":"-73.860816"}, +{"Station ID":"367","Complex ID":"367","GTFS Stop ID":"609","Division":"IRT","Line":"Pelham","Stop Name":"St Lawrence Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.831509","GTFS Longitude":"-73.867618"}, +{"Station ID":"368","Complex ID":"368","GTFS Stop ID":"610","Division":"IRT","Line":"Pelham","Stop Name":"Morrison Av- Sound View","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.829521","GTFS Longitude":"-73.874516"}, +{"Station ID":"369","Complex ID":"369","GTFS Stop ID":"611","Division":"IRT","Line":"Pelham","Stop Name":"Elder Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.828584","GTFS Longitude":"-73.879159"}, +{"Station ID":"370","Complex ID":"370","GTFS Stop ID":"612","Division":"IRT","Line":"Pelham","Stop Name":"Whitlock Av","Borough":"Bx","Daytime Routes":"6","Structure":"Elevated","GTFS Latitude":"40.826525","GTFS Longitude":"-73.886283"}, +{"Station ID":"371","Complex ID":"371","GTFS Stop ID":"613","Division":"IRT","Line":"Pelham","Stop Name":"Hunts Point Av","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.820948","GTFS Longitude":"-73.890549"}, +{"Station ID":"372","Complex ID":"372","GTFS Stop ID":"614","Division":"IRT","Line":"Pelham","Stop Name":"Longwood Av","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.816104","GTFS Longitude":"-73.896435"}, +{"Station ID":"373","Complex ID":"373","GTFS Stop ID":"615","Division":"IRT","Line":"Pelham","Stop Name":"E 149 St","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.812118","GTFS Longitude":"-73.904098"}, +{"Station ID":"374","Complex ID":"374","GTFS Stop ID":"616","Division":"IRT","Line":"Pelham","Stop Name":"E 143 St - St Mary's St","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.808719","GTFS Longitude":"-73.907657"}, +{"Station ID":"375","Complex ID":"375","GTFS Stop ID":"617","Division":"IRT","Line":"Pelham","Stop Name":"Cypress Av","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.805368","GTFS Longitude":"-73.914042"}, +{"Station ID":"376","Complex ID":"376","GTFS Stop ID":"618","Division":"IRT","Line":"Pelham","Stop Name":"Brook Av","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.807566","GTFS Longitude":"-73.91924"}, +{"Station ID":"377","Complex ID":"377","GTFS Stop ID":"619","Division":"IRT","Line":"Pelham","Stop Name":"3 Av - 138 St","Borough":"Bx","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.810476","GTFS Longitude":"-73.926138"}, +{"Station ID":"378","Complex ID":"378","GTFS Stop ID":"401","Division":"IRT","Line":"Jerome Av","Stop Name":"Woodlawn","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.886037","GTFS Longitude":"-73.878751"}, +{"Station ID":"379","Complex ID":"379","GTFS Stop ID":"402","Division":"IRT","Line":"Jerome Av","Stop Name":"Mosholu Pkwy","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.87975","GTFS Longitude":"-73.884655"}, +{"Station ID":"380","Complex ID":"380","GTFS Stop ID":"405","Division":"IRT","Line":"Jerome Av","Stop Name":"Bedford Park Blvd - Lehman College","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.873412","GTFS Longitude":"-73.890064"}, +{"Station ID":"381","Complex ID":"381","GTFS Stop ID":"406","Division":"IRT","Line":"Jerome Av","Stop Name":"Kingsbridge Rd","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.86776","GTFS Longitude":"-73.897174"}, +{"Station ID":"382","Complex ID":"382","GTFS Stop ID":"407","Division":"IRT","Line":"Jerome Av","Stop Name":"Fordham Rd","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.862803","GTFS Longitude":"-73.901034"}, +{"Station ID":"383","Complex ID":"383","GTFS Stop ID":"408","Division":"IRT","Line":"Jerome Av","Stop Name":"183 St","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.858407","GTFS Longitude":"-73.903879"}, +{"Station ID":"384","Complex ID":"384","GTFS Stop ID":"409","Division":"IRT","Line":"Jerome Av","Stop Name":"Burnside Av","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.853453","GTFS Longitude":"-73.907684"}, +{"Station ID":"385","Complex ID":"385","GTFS Stop ID":"410","Division":"IRT","Line":"Jerome Av","Stop Name":"176 St","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.84848","GTFS Longitude":"-73.911794"}, +{"Station ID":"386","Complex ID":"386","GTFS Stop ID":"411","Division":"IRT","Line":"Jerome Av","Stop Name":"Mt Eden Av","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.844434","GTFS Longitude":"-73.914685"}, +{"Station ID":"387","Complex ID":"387","GTFS Stop ID":"412","Division":"IRT","Line":"Jerome Av","Stop Name":"170 St","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.840075","GTFS Longitude":"-73.917791"}, +{"Station ID":"388","Complex ID":"388","GTFS Stop ID":"413","Division":"IRT","Line":"Jerome Av","Stop Name":"167 St","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.835537","GTFS Longitude":"-73.9214"}, +{"Station ID":"389","Complex ID":"604","GTFS Stop ID":"414","Division":"IRT","Line":"Jerome Av","Stop Name":"161 St - Yankee Stadium","Borough":"Bx","Daytime Routes":"4","Structure":"Elevated","GTFS Latitude":"40.827994","GTFS Longitude":"-73.925831"}, +{"Station ID":"390","Complex ID":"603","GTFS Stop ID":"415","Division":"IRT","Line":"Jerome Av","Stop Name":"149 St - Grand Concourse","Borough":"Bx","Daytime Routes":"4","Structure":"Subway","GTFS Latitude":"40.818375","GTFS Longitude":"-73.927351"}, +{"Station ID":"391","Complex ID":"391","GTFS Stop ID":"416","Division":"IRT","Line":"Jerome Av","Stop Name":"138 St - Grand Concourse","Borough":"Bx","Daytime Routes":"4 5","Structure":"Subway","GTFS Latitude":"40.813224","GTFS Longitude":"-73.929849"}, +{"Station ID":"392","Complex ID":"392","GTFS Stop ID":"621","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"125 St","Borough":"M","Daytime Routes":"4 5 6","Structure":"Subway","GTFS Latitude":"40.804138","GTFS Longitude":"-73.937594"}, +{"Station ID":"393","Complex ID":"393","GTFS Stop ID":"622","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"116 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.798629","GTFS Longitude":"-73.941617"}, +{"Station ID":"394","Complex ID":"394","GTFS Stop ID":"623","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"110 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.79502","GTFS Longitude":"-73.94425"}, +{"Station ID":"395","Complex ID":"395","GTFS Stop ID":"624","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"103 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.7906","GTFS Longitude":"-73.947478"}, +{"Station ID":"396","Complex ID":"396","GTFS Stop ID":"625","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"96 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.785672","GTFS Longitude":"-73.95107"}, +{"Station ID":"397","Complex ID":"397","GTFS Stop ID":"626","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"86 St","Borough":"M","Daytime Routes":"4 5 6","Structure":"Subway","GTFS Latitude":"40.779492","GTFS Longitude":"-73.955589"}, +{"Station ID":"398","Complex ID":"398","GTFS Stop ID":"627","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"77 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.77362","GTFS Longitude":"-73.959874"}, +{"Station ID":"399","Complex ID":"399","GTFS Stop ID":"628","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"68 St - Hunter College","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.768141","GTFS Longitude":"-73.96387"}, +{"Station ID":"400","Complex ID":"613","GTFS Stop ID":"629","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"59 St","Borough":"M","Daytime Routes":"4 5 6","Structure":"Subway","GTFS Latitude":"40.762526","GTFS Longitude":"-73.967967"}, +{"Station ID":"401","Complex ID":"612","GTFS Stop ID":"630","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"51 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.757107","GTFS Longitude":"-73.97192"}, +{"Station ID":"402","Complex ID":"610","GTFS Stop ID":"631","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Grand Central - 42 St","Borough":"M","Daytime Routes":"4 5 6","Structure":"Subway","GTFS Latitude":"40.751776","GTFS Longitude":"-73.976848"}, +{"Station ID":"403","Complex ID":"403","GTFS Stop ID":"632","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"33 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.746081","GTFS Longitude":"-73.982076"}, +{"Station ID":"404","Complex ID":"404","GTFS Stop ID":"633","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"28 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.74307","GTFS Longitude":"-73.984264"}, +{"Station ID":"405","Complex ID":"405","GTFS Stop ID":"634","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"23 St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.739864","GTFS Longitude":"-73.986599"}, +{"Station ID":"406","Complex ID":"602","GTFS Stop ID":"635","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"14 St - Union Sq","Borough":"M","Daytime Routes":"4 5 6","Structure":"Subway","GTFS Latitude":"40.734673","GTFS Longitude":"-73.989951"}, +{"Station ID":"407","Complex ID":"407","GTFS Stop ID":"636","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Astor Pl","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.730054","GTFS Longitude":"-73.99107"}, +{"Station ID":"408","Complex ID":"619","GTFS Stop ID":"637","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Bleecker St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.725915","GTFS Longitude":"-73.994659"}, +{"Station ID":"409","Complex ID":"409","GTFS Stop ID":"638","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Spring St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.722301","GTFS Longitude":"-73.997141"}, +{"Station ID":"410","Complex ID":"623","GTFS Stop ID":"639","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Canal St","Borough":"M","Daytime Routes":"6","Structure":"Subway","GTFS Latitude":"40.718803","GTFS Longitude":"-74.000193"}, +{"Station ID":"411","Complex ID":"622","GTFS Stop ID":"640","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Brooklyn Bridge - City Hall","Borough":"M","Daytime Routes":"4 5 6","Structure":"Subway","GTFS Latitude":"40.713065","GTFS Longitude":"-74.004131"}, +{"Station ID":"412","Complex ID":"628","GTFS Stop ID":"418","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Fulton St","Borough":"M","Daytime Routes":"4 5","Structure":"Subway","GTFS Latitude":"40.710368","GTFS Longitude":"-74.009509"}, +{"Station ID":"413","Complex ID":"413","GTFS Stop ID":"419","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Wall St","Borough":"M","Daytime Routes":"4 5","Structure":"Subway","GTFS Latitude":"40.707557","GTFS Longitude":"-74.011862"}, +{"Station ID":"414","Complex ID":"414","GTFS Stop ID":"420","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Bowling Green","Borough":"M","Daytime Routes":"4 5","Structure":"Subway","GTFS Latitude":"40.704817","GTFS Longitude":"-74.014065"}, +{"Station ID":"415","Complex ID":"620","GTFS Stop ID":"423","Division":"IRT","Line":"Eastern Pky","Stop Name":"Borough Hall","Borough":"Bk","Daytime Routes":"4 5","Structure":"Subway","GTFS Latitude":"40.692404","GTFS Longitude":"-73.990151"}, +{"Station ID":"416","Complex ID":"416","GTFS Stop ID":"201","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Wakefield - 241 St","Borough":"Bx","Daytime Routes":"2","Structure":"Elevated","GTFS Latitude":"40.903125","GTFS Longitude":"-73.85062"}, +{"Station ID":"417","Complex ID":"417","GTFS Stop ID":"204","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Nereid Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.898379","GTFS Longitude":"-73.854376"}, +{"Station ID":"418","Complex ID":"418","GTFS Stop ID":"205","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"233 St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.893193","GTFS Longitude":"-73.857473"}, +{"Station ID":"419","Complex ID":"419","GTFS Stop ID":"206","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"225 St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.888022","GTFS Longitude":"-73.860341"}, +{"Station ID":"420","Complex ID":"420","GTFS Stop ID":"207","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"219 St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.883895","GTFS Longitude":"-73.862633"}, +{"Station ID":"421","Complex ID":"421","GTFS Stop ID":"208","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Gun Hill Rd","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.87785","GTFS Longitude":"-73.866256"}, +{"Station ID":"422","Complex ID":"422","GTFS Stop ID":"209","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Burke Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.871356","GTFS Longitude":"-73.867164"}, +{"Station ID":"423","Complex ID":"423","GTFS Stop ID":"210","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Allerton Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.865462","GTFS Longitude":"-73.867352"}, +{"Station ID":"424","Complex ID":"424","GTFS Stop ID":"211","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Pelham Pkwy","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.857192","GTFS Longitude":"-73.867615"}, +{"Station ID":"425","Complex ID":"425","GTFS Stop ID":"212","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Bronx Park East","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.848828","GTFS Longitude":"-73.868457"}, +{"Station ID":"426","Complex ID":"426","GTFS Stop ID":"213","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"E 180 St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.841894","GTFS Longitude":"-73.873488"}, +{"Station ID":"427","Complex ID":"427","GTFS Stop ID":"214","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"West Farms Sq - E Tremont Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.840295","GTFS Longitude":"-73.880049"}, +{"Station ID":"428","Complex ID":"428","GTFS Stop ID":"215","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"174 St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.837288","GTFS Longitude":"-73.887734"}, +{"Station ID":"429","Complex ID":"429","GTFS Stop ID":"216","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Freeman St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.829993","GTFS Longitude":"-73.891865"}, +{"Station ID":"430","Complex ID":"430","GTFS Stop ID":"217","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Simpson St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.824073","GTFS Longitude":"-73.893064"}, +{"Station ID":"431","Complex ID":"431","GTFS Stop ID":"218","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Intervale Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.822181","GTFS Longitude":"-73.896736"}, +{"Station ID":"432","Complex ID":"432","GTFS Stop ID":"219","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Prospect Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.819585","GTFS Longitude":"-73.90177"}, +{"Station ID":"433","Complex ID":"433","GTFS Stop ID":"220","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Jackson Av","Borough":"Bx","Daytime Routes":"2 5","Structure":"Elevated","GTFS Latitude":"40.81649","GTFS Longitude":"-73.907807"}, +{"Station ID":"434","Complex ID":"434","GTFS Stop ID":"221","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"3 Av - 149 St","Borough":"Bx","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.816109","GTFS Longitude":"-73.917757"}, +{"Station ID":"435","Complex ID":"603","GTFS Stop ID":"222","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"149 St - Grand Concourse","Borough":"Bx","Daytime Routes":"2 5","Structure":"Subway","GTFS Latitude":"40.81841","GTFS Longitude":"-73.926718"}, +{"Station ID":"436","Complex ID":"436","GTFS Stop ID":"301","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Harlem - 148 St","Borough":"M","Daytime Routes":"3","Structure":"Subway","GTFS Latitude":"40.82388","GTFS Longitude":"-73.93647"}, +{"Station ID":"437","Complex ID":"437","GTFS Stop ID":"302","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"145 St","Borough":"M","Daytime Routes":"3","Structure":"Subway","GTFS Latitude":"40.820421","GTFS Longitude":"-73.936245"}, +{"Station ID":"438","Complex ID":"438","GTFS Stop ID":"224","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"135 St","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.814229","GTFS Longitude":"-73.94077"}, +{"Station ID":"439","Complex ID":"439","GTFS Stop ID":"225","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"125 St","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.807754","GTFS Longitude":"-73.945495"}, +{"Station ID":"440","Complex ID":"440","GTFS Stop ID":"226","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"116 St","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.802098","GTFS Longitude":"-73.949625"}, +{"Station ID":"441","Complex ID":"441","GTFS Stop ID":"227","Division":"IRT","Line":"Lenox - White Plains Rd","Stop Name":"Central Park North (110 St)","Borough":"M","Daytime Routes":"2 3","Structure":"Subway","GTFS Latitude":"40.799075","GTFS Longitude":"-73.951822"}, +{"Station ID":"442","Complex ID":"442","GTFS Stop ID":"501","Division":"IRT","Line":"Dyre Av","Stop Name":"Eastchester - Dyre Av","Borough":"Bx","Daytime Routes":"5","Structure":"At Grade","GTFS Latitude":"40.8883","GTFS Longitude":"-73.830834"}, +{"Station ID":"443","Complex ID":"443","GTFS Stop ID":"502","Division":"IRT","Line":"Dyre Av","Stop Name":"Baychester Av","Borough":"Bx","Daytime Routes":"5","Structure":"Open Cut","GTFS Latitude":"40.878663","GTFS Longitude":"-73.838591"}, +{"Station ID":"444","Complex ID":"444","GTFS Stop ID":"503","Division":"IRT","Line":"Dyre Av","Stop Name":"Gun Hill Rd","Borough":"Bx","Daytime Routes":"5","Structure":"Open Cut","GTFS Latitude":"40.869526","GTFS Longitude":"-73.846384"}, +{"Station ID":"445","Complex ID":"445","GTFS Stop ID":"504","Division":"IRT","Line":"Dyre Av","Stop Name":"Pelham Pkwy","Borough":"Bx","Daytime Routes":"5","Structure":"Open Cut","GTFS Latitude":"40.858985","GTFS Longitude":"-73.855359"}, +{"Station ID":"446","Complex ID":"446","GTFS Stop ID":"505","Division":"IRT","Line":"Dyre Av","Stop Name":"Morris Park","Borough":"Bx","Daytime Routes":"5","Structure":"Open Cut","GTFS Latitude":"40.854364","GTFS Longitude":"-73.860495"}, +{"Station ID":"447","Complex ID":"447","GTFS Stop ID":"701","Division":"IRT","Line":"Flushing","Stop Name":"Flushing - Main St","Borough":"Q","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.7596","GTFS Longitude":"-73.83003"}, +{"Station ID":"448","Complex ID":"448","GTFS Stop ID":"702","Division":"IRT","Line":"Flushing","Stop Name":"Mets - Willets Point","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.754622","GTFS Longitude":"-73.845625"}, +{"Station ID":"449","Complex ID":"449","GTFS Stop ID":"705","Division":"IRT","Line":"Flushing","Stop Name":"111 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.75173","GTFS Longitude":"-73.855334"}, +{"Station ID":"450","Complex ID":"450","GTFS Stop ID":"706","Division":"IRT","Line":"Flushing","Stop Name":"103 St - Corona Plaza","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.749865","GTFS Longitude":"-73.8627"}, +{"Station ID":"451","Complex ID":"451","GTFS Stop ID":"707","Division":"IRT","Line":"Flushing","Stop Name":"Junction Blvd","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.749145","GTFS Longitude":"-73.869527"}, +{"Station ID":"452","Complex ID":"452","GTFS Stop ID":"708","Division":"IRT","Line":"Flushing","Stop Name":"90 St - Elmhurst Av","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.748408","GTFS Longitude":"-73.876613"}, +{"Station ID":"453","Complex ID":"453","GTFS Stop ID":"709","Division":"IRT","Line":"Flushing","Stop Name":"82 St - Jackson Hts","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.747659","GTFS Longitude":"-73.883697"}, +{"Station ID":"454","Complex ID":"616","GTFS Stop ID":"710","Division":"IRT","Line":"Flushing","Stop Name":"74 St - Broadway","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.746848","GTFS Longitude":"-73.891394"}, +{"Station ID":"455","Complex ID":"455","GTFS Stop ID":"711","Division":"IRT","Line":"Flushing","Stop Name":"69 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.746325","GTFS Longitude":"-73.896403"}, +{"Station ID":"456","Complex ID":"456","GTFS Stop ID":"712","Division":"IRT","Line":"Flushing","Stop Name":"Woodside - 61 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.74563","GTFS Longitude":"-73.902984"}, +{"Station ID":"457","Complex ID":"457","GTFS Stop ID":"713","Division":"IRT","Line":"Flushing","Stop Name":"52 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.744149","GTFS Longitude":"-73.912549"}, +{"Station ID":"458","Complex ID":"458","GTFS Stop ID":"714","Division":"IRT","Line":"Flushing","Stop Name":"46 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.743132","GTFS Longitude":"-73.918435"}, +{"Station ID":"459","Complex ID":"459","GTFS Stop ID":"715","Division":"IRT","Line":"Flushing","Stop Name":"40 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.743781","GTFS Longitude":"-73.924016"}, +{"Station ID":"460","Complex ID":"460","GTFS Stop ID":"716","Division":"IRT","Line":"Flushing","Stop Name":"33 St","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.744587","GTFS Longitude":"-73.930997"}, +{"Station ID":"461","Complex ID":"461","GTFS Stop ID":"718","Division":"IRT","Line":"Flushing","Stop Name":"Queensboro Plaza","Borough":"Q","Daytime Routes":"7 N W","Structure":"Elevated","GTFS Latitude":"40.750582","GTFS Longitude":"-73.940202"}, +{"Station ID":"462","Complex ID":"606","GTFS Stop ID":"719","Division":"IRT","Line":"Flushing","Stop Name":"Court Sq","Borough":"Q","Daytime Routes":"7","Structure":"Elevated","GTFS Latitude":"40.747023","GTFS Longitude":"-73.945264"}, +{"Station ID":"463","Complex ID":"463","GTFS Stop ID":"720","Division":"IRT","Line":"Flushing","Stop Name":"Hunters Point Av","Borough":"Q","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.742216","GTFS Longitude":"-73.948916"}, +{"Station ID":"464","Complex ID":"464","GTFS Stop ID":"721","Division":"IRT","Line":"Flushing","Stop Name":"Vernon Blvd - Jackson Av","Borough":"Q","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.742626","GTFS Longitude":"-73.953581"}, +{"Station ID":"465","Complex ID":"610","GTFS Stop ID":"723","Division":"IRT","Line":"Flushing","Stop Name":"Grand Central - 42 St","Borough":"M","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.751431","GTFS Longitude":"-73.976041"}, +{"Station ID":"466","Complex ID":"609","GTFS Stop ID":"724","Division":"IRT","Line":"Flushing","Stop Name":"5 Av","Borough":"M","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.753821","GTFS Longitude":"-73.981963"}, +{"Station ID":"467","Complex ID":"611","GTFS Stop ID":"725","Division":"IRT","Line":"Flushing","Stop Name":"Times Sq - 42 St","Borough":"M","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.755477","GTFS Longitude":"-73.987691"}, +{"Station ID":"468","Complex ID":"611","GTFS Stop ID":"902","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Times Sq - 42 St","Borough":"M","Daytime Routes":"S","Structure":"Subway","GTFS Latitude":"40.755983","GTFS Longitude":"-73.986229"}, +{"Station ID":"469","Complex ID":"610","GTFS Stop ID":"901","Division":"IRT","Line":"Lexington - Shuttle","Stop Name":"Grand Central - 42 St","Borough":"M","Daytime Routes":"S","Structure":"Subway","GTFS Latitude":"40.752769","GTFS Longitude":"-73.979189"}, +{"Station ID":"471","Complex ID":"471","GTFS Stop ID":"726","Division":"IRT","Line":"Flushing","Stop Name":"34 St - 11 Av","Borough":"M","Daytime Routes":"7","Structure":"Subway","GTFS Latitude":"40.755882","GTFS Longitude":"-74.00191"}, +{"Station ID":"475","Complex ID":"475","GTFS Stop ID":"Q05","Division":"IND","Line":"Second Av","Stop Name":"96 St","Borough":"M","Daytime Routes":"Q","Structure":"Subway","GTFS Latitude":"40.784318","GTFS Longitude":"-73.947152"}, +{"Station ID":"476","Complex ID":"476","GTFS Stop ID":"Q04","Division":"IND","Line":"Second Av","Stop Name":"86 St","Borough":"M","Daytime Routes":"Q","Structure":"Subway","GTFS Latitude":"40.777891","GTFS Longitude":"-73.951787"}, +{"Station ID":"477","Complex ID":"477","GTFS Stop ID":"Q03","Division":"IND","Line":"Second Av","Stop Name":"72 St","Borough":"M","Daytime Routes":"Q","Structure":"Subway","GTFS Latitude":"40.768799","GTFS Longitude":"-73.958424"}, +{"Station ID":"501","Complex ID":"501","GTFS Stop ID":"S31","Division":"SIR","Line":"Staten Island","Stop Name":"St George","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.643748","GTFS Longitude":"-74.073643"}, +{"Station ID":"502","Complex ID":"502","GTFS Stop ID":"S30","Division":"SIR","Line":"Staten Island","Stop Name":"Tompkinsville","Borough":"SI","Daytime Routes":"SIR","Structure":"At Grade","GTFS Latitude":"40.636949","GTFS Longitude":"-74.074835"}, +{"Station ID":"503","Complex ID":"503","GTFS Stop ID":"S29","Division":"SIR","Line":"Staten Island","Stop Name":"Stapleton","Borough":"SI","Daytime Routes":"SIR","Structure":"Elevated","GTFS Latitude":"40.627915","GTFS Longitude":"-74.075162"}, +{"Station ID":"504","Complex ID":"504","GTFS Stop ID":"S28","Division":"SIR","Line":"Staten Island","Stop Name":"Clifton","Borough":"SI","Daytime Routes":"SIR","Structure":"Elevated","GTFS Latitude":"40.621319","GTFS Longitude":"-74.071402"}, +{"Station ID":"505","Complex ID":"505","GTFS Stop ID":"S27","Division":"SIR","Line":"Staten Island","Stop Name":"Grasmere","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.603117","GTFS Longitude":"-74.084087"}, +{"Station ID":"506","Complex ID":"506","GTFS Stop ID":"S26","Division":"SIR","Line":"Staten Island","Stop Name":"Old Town","Borough":"SI","Daytime Routes":"SIR","Structure":"Embankment","GTFS Latitude":"40.596612","GTFS Longitude":"-74.087368"}, +{"Station ID":"507","Complex ID":"507","GTFS Stop ID":"S25","Division":"SIR","Line":"Staten Island","Stop Name":"Dongan Hills","Borough":"SI","Daytime Routes":"SIR","Structure":"Embankment","GTFS Latitude":"40.588849","GTFS Longitude":"-74.09609"}, +{"Station ID":"508","Complex ID":"508","GTFS Stop ID":"S24","Division":"SIR","Line":"Staten Island","Stop Name":"Jefferson Av","Borough":"SI","Daytime Routes":"SIR","Structure":"Embankment","GTFS Latitude":"40.583591","GTFS Longitude":"-74.103338"}, +{"Station ID":"509","Complex ID":"509","GTFS Stop ID":"S23","Division":"SIR","Line":"Staten Island","Stop Name":"Grant City","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.578965","GTFS Longitude":"-74.109704"}, +{"Station ID":"510","Complex ID":"510","GTFS Stop ID":"S22","Division":"SIR","Line":"Staten Island","Stop Name":"New Dorp","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.57348","GTFS Longitude":"-74.11721"}, +{"Station ID":"511","Complex ID":"511","GTFS Stop ID":"S21","Division":"SIR","Line":"Staten Island","Stop Name":"Oakwood Heights","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.56511","GTFS Longitude":"-74.12632"}, +{"Station ID":"512","Complex ID":"512","GTFS Stop ID":"S20","Division":"SIR","Line":"Staten Island","Stop Name":"Bay Terrace","Borough":"SI","Daytime Routes":"SIR","Structure":"Embankment","GTFS Latitude":"40.5564","GTFS Longitude":"-74.136907"}, +{"Station ID":"513","Complex ID":"513","GTFS Stop ID":"S19","Division":"SIR","Line":"Staten Island","Stop Name":"Great Kills","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.551231","GTFS Longitude":"-74.151399"}, +{"Station ID":"514","Complex ID":"514","GTFS Stop ID":"S18","Division":"SIR","Line":"Staten Island","Stop Name":"Eltingville","Borough":"SI","Daytime Routes":"SIR","Structure":"Embankment","GTFS Latitude":"40.544601","GTFS Longitude":"-74.16457"}, +{"Station ID":"515","Complex ID":"515","GTFS Stop ID":"S17","Division":"SIR","Line":"Staten Island","Stop Name":"Annadale","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.54046","GTFS Longitude":"-74.178217"}, +{"Station ID":"516","Complex ID":"516","GTFS Stop ID":"S16","Division":"SIR","Line":"Staten Island","Stop Name":"Huguenot","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.533674","GTFS Longitude":"-74.191794"}, +{"Station ID":"517","Complex ID":"517","GTFS Stop ID":"S15","Division":"SIR","Line":"Staten Island","Stop Name":"Prince's Bay","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.525507","GTFS Longitude":"-74.200064"}, +{"Station ID":"518","Complex ID":"518","GTFS Stop ID":"S14","Division":"SIR","Line":"Staten Island","Stop Name":"Pleasant Plains","Borough":"SI","Daytime Routes":"SIR","Structure":"Embankment","GTFS Latitude":"40.52241","GTFS Longitude":"-74.217847"}, +{"Station ID":"519","Complex ID":"519","GTFS Stop ID":"S13","Division":"SIR","Line":"Staten Island","Stop Name":"Richmond Valley","Borough":"SI","Daytime Routes":"SIR","Structure":"Open Cut","GTFS Latitude":"40.519631","GTFS Longitude":"-74.229141"}, +{"Station ID":"522","Complex ID":"522","GTFS Stop ID":"S09","Division":"SIR","Line":"Staten Island","Stop Name":"Tottenville","Borough":"SI","Daytime Routes":"SIR","Structure":"At Grade","GTFS Latitude":"40.512764","GTFS Longitude":"-74.251961"}, +{"Station ID":"523","Complex ID":"523","GTFS Stop ID":"S11","Division":"SIR","Line":"Staten Island","Stop Name":"Arthur Kill","Borough":"SI","Daytime Routes":"SIR","Structure":"At Grade","GTFS Latitude":"40.516578","GTFS Longitude":"-74.242096"} +] \ No newline at end of file diff --git a/index.js b/index.js index 3d4ee58..f9db5d9 100644 --- a/index.js +++ b/index.js @@ -80,17 +80,18 @@ var handlers = { checkFavoriteLines: checkFavoriteLinesHandler, checkFavoriteLinesStatus: checkFavoriteLinesStatusHandler, - storeWorkLocation() { - console.log("In store work location handler"); - console.log(this.event.request.dialogState); - if(this.event.request.dialogState !== 'COMPLETED') { - this.emit(':delegate'); + storeCommute() { + if(this.event.request.dialogState === 'COMPLETED') { + let { subwayStation, subwayDirection, subwayLine } = this.events.request.intent.slots; + subwayStationVerifier() + this.emit(':tell', 'thank you'); } else { - console.log(this.event); + console.log(JSON.stringify(this.event)); + this.emit(':delegate'); } }, - Unhandled: fullStatusUpdateHandler, + Unhandled: fullStatusUpdateHandler }; exports.flashBriefingHandler = (event, context, callback) => { diff --git a/package.json b/package.json index 6437d63..501eb0a 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,8 @@ "main": "index.js", "author": "Damon Aw ", "scripts": { + "data:convert_csv_stops_to_json": "csvtojson ./assets/mta/Stations.csv > ./values/subway-stops.json", + "data:convert_stations_to_slot": "node ./scripts/clean-station-names.js > ./data/slots/station-names.json", "dynamodb:download": "mkdir -p downloads && mkdir -p dynamodb_local && wget -N https://s3-us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz -P ./downloads && tar -xvf ./downloads/dynamodb_local_latest.tar.gz -C ./dynamodb_local", "dynamodb:start": "java -Djava.library.path=./dynamodb_local/DynamoDBLocal_lib -jar ./dynamodb_local/DynamoDBLocal.jar -sharedDb -inMemory", "release": "rm -f subway.zip && yarn --production && zip -r subway.zip . -x '*.git*' -x 'tests/*' -x 'downloads/*' -x 'assets/*' -x 'dynamodb_local/*'", @@ -24,6 +26,7 @@ "isomorphic-fetch": "^2.2.1", "lodash": "^4.17.4", "pluralize": "^3.1.0", + "protobufjs": "^6.8.0", "sanitize-html": "^1.13.0", "uuid": "^3.1.0", "xml2js": "^0.4.17" @@ -31,6 +34,7 @@ "license": "MIT", "devDependencies": { "ava": "^0.17.0", + "csvtojson": "^1.1.7", "dotenv": "^4.0.0", "fetch-mock": "^5.8.0", "lambda-tester": "^2.6.1" diff --git a/scripts/clean-station-names.js b/scripts/clean-station-names.js new file mode 100644 index 0000000..b735f62 --- /dev/null +++ b/scripts/clean-station-names.js @@ -0,0 +1,13 @@ +const subwayStops = require('../values/subway-stops.js'); +const _ = require('lodash'); + +process.stdout.write( + JSON.stringify( + _(subwayStops) + .map(stopData => stopData["stopName"]) + .uniq() + .map(stopName => { + return ({ id: null, name: { value: stopName, synonyms: [] }}) + }).value() + ) +); diff --git a/values/subway-stops.js b/values/subway-stops.js new file mode 100644 index 0000000..4599604 --- /dev/null +++ b/values/subway-stops.js @@ -0,0 +1,6 @@ +const fs = require('fs'); +const _ = require('lodash'); + +module.exports = JSON.parse(fs.readFileSync(process.cwd() + '/data/subway-stops.json')).map(station => + _.transform(station, (result, value, key) => result[_.camelCase(key)] = value) +); diff --git a/yarn.lock b/yarn.lock index 293172b..0e0578c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,57 @@ # yarn lockfile v1 +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + +"@types/long@^3.0.31": + version "3.0.31" + resolved "https://registry.yarnpkg.com/@types/long/-/long-3.0.31.tgz#08635b0d0d322676940c1a88a7a9cef661c6f34a" + +"@types/node@^7.0.29": + version "7.0.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.33.tgz#ae3c53ad01d7e9d62c7f1a85c5f7500d59b9d25b" + abbrev@1: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -1107,6 +1158,13 @@ crypto-browserify@1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-1.0.9.tgz#cc5449685dfb85eb11c9828acc7cb87ab5bbfcc0" +csvtojson@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/csvtojson/-/csvtojson-1.1.7.tgz#17ded07aec0d8c01f2d6f6871cfa36ab88b149b1" + dependencies: + lodash "^4.17.3" + strip-bom "1.0.0" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -1351,6 +1409,10 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + fn-name@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" @@ -1924,7 +1986,7 @@ lodash.isequal@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.4.0.tgz#6295768e98e14dc15ce8d362ef6340db82852031" -lodash@^4.0.0, lodash@^4.17.4, lodash@^4.2.0: +lodash@^4.0.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -1932,6 +1994,10 @@ lodash@~3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.5.0.tgz#19bb3f4d51278f0b8c818ed145c74ecf9fe40e6d" +long@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + loose-envify@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" @@ -2372,6 +2438,24 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +protobufjs@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.0.tgz#04e85493c4e1653878ec283f18bc78b1e7c5d5a2" + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^3.0.31" + "@types/node" "^7.0.29" + long "^3.2.0" + pseudomap@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -2728,6 +2812,13 @@ strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" +strip-bom@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"