From d0387c7aa223d6fcb6c10881e7eba5da0ad61788 Mon Sep 17 00:00:00 2001 From: Levi Lesches Date: Fri, 2 May 2025 19:55:59 -0400 Subject: [PATCH] Working "find a path" code (#13) The client first requests stops from the TS server (`0.0.0.0:80`), then the path from the Dart server (`localhost:8001`). It will be trivial to move the TS logic to the Dart server since the Dart server is the one that parsed all that data, and it's anyway in a `JSON` file. There is a `server/GET_ROUTES.json` file, but it's not needed. I just included it for easier debugging. `server/GET_STOPS.json` includes both the stops and the routes, and the client does some (inefficient) work to re-organize it. The Dart server uses a basic A* implementation to sort find direct routes and routes with transfers. The A* logic is in `src/shared/lib/src/graph/graph.dart`. This file defines the state itself, and `package:a_star` on Pub.dev (mine) defines the algorithm. `src/shared/bin/path.dart` is the whole of the Dart server. TODO: - add unit tests - this PR breaks almost nothing, so there is duplicate work being done on the client and some unused logic - return a structured path object for the client to use as it wants. This PR just sends a well-formatted string --- src/.gitignore | 2 + src/{client => }/analysis_options.yaml | 0 src/client/lib/src/services/api.dart | 23 + src/client/lib/src/services/api_client.dart | 6 +- src/client/lib/src/view_models/home.dart | 16 +- .../lib/src/view_models/home_markers.dart | 11 +- src/client/lib/src/widgets/sidebar.dart | 42 +- src/client/pubspec.lock | 433 -- src/client/pubspec.yaml | 2 +- src/client/test/widget_test.dart | 30 - src/pubspec.yaml | 10 + src/server/GET_STOPS.json | 4724 ++++++++++++++--- src/server/GET_routes.json | 1454 +++++ src/shared/analysis_options.yaml | 52 - src/shared/bin/data.dart | 4 +- src/shared/bin/path.dart | 147 + src/shared/lib/data.dart | 6 +- src/shared/lib/generator.dart | 8 +- src/shared/lib/graph.dart | 1 + src/shared/lib/shared.dart | 2 - src/shared/lib/src/data/provider.dart | 11 + src/shared/lib/src/data/route.dart | 55 + src/shared/lib/src/{stops => data}/stop.dart | 33 +- src/shared/lib/src/{ => data}/utils.dart | 26 +- src/shared/lib/src/generator/generator.dart | 44 + src/shared/lib/src/generator/routes_bc.dart | 46 + src/shared/lib/src/generator/routes_occt.dart | 13 + .../bc.dart => generator/stops_bc.dart} | 18 +- .../occt.dart => generator/stops_occt.dart} | 10 +- .../utils.dart} | 6 - src/shared/lib/src/graph/state.dart | 73 + src/shared/lib/src/stops/generator.dart | 28 - src/shared/pubspec.yaml | 5 + 33 files changed, 5921 insertions(+), 1420 deletions(-) rename src/{client => }/analysis_options.yaml (100%) delete mode 100644 src/client/pubspec.lock delete mode 100644 src/client/test/widget_test.dart create mode 100644 src/pubspec.yaml create mode 100644 src/server/GET_routes.json delete mode 100644 src/shared/analysis_options.yaml create mode 100644 src/shared/bin/path.dart create mode 100644 src/shared/lib/graph.dart delete mode 100644 src/shared/lib/shared.dart create mode 100644 src/shared/lib/src/data/provider.dart create mode 100644 src/shared/lib/src/data/route.dart rename src/shared/lib/src/{stops => data}/stop.dart (64%) rename src/shared/lib/src/{ => data}/utils.dart (62%) create mode 100644 src/shared/lib/src/generator/generator.dart create mode 100644 src/shared/lib/src/generator/routes_bc.dart create mode 100644 src/shared/lib/src/generator/routes_occt.dart rename src/shared/lib/src/{stops/bc.dart => generator/stops_bc.dart} (83%) rename src/shared/lib/src/{stops/occt.dart => generator/stops_occt.dart} (85%) rename src/shared/lib/src/{generator_utils.dart => generator/utils.dart} (90%) create mode 100644 src/shared/lib/src/graph/state.dart delete mode 100644 src/shared/lib/src/stops/generator.dart diff --git a/src/.gitignore b/src/.gitignore index 03bd412..8660be8 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1 +1,3 @@ *.env +pubspec.lock +.dart_tool diff --git a/src/client/analysis_options.yaml b/src/analysis_options.yaml similarity index 100% rename from src/client/analysis_options.yaml rename to src/analysis_options.yaml diff --git a/src/client/lib/src/services/api.dart b/src/client/lib/src/services/api.dart index 073320d..566b8cc 100644 --- a/src/client/lib/src/services/api.dart +++ b/src/client/lib/src/services/api.dart @@ -1,6 +1,7 @@ import "package:flutter/foundation.dart" show debugPrint, kDebugMode; import "package:client/data.dart"; +import "package:http/http.dart" as http; import "api_client.dart"; import "service.dart"; @@ -41,6 +42,28 @@ class ApiService extends Service { PathStep.fromJson, ); + Future getPath2({ + required Coordinates start, + required Coordinates end, + }) async { + final uri = Uri.parse("http://localhost:8001/path").replace( + queryParameters: { + "start_lat": start.lat.toString(), + "start_lon": start.long.toString(), + "end_lat": end.lat.toString(), + "end_lon": end.long.toString(), + }, + ); + try { + final response = await http.get(uri); + return response.body; + // Any error should show null + // ignore: avoid_catches_without_on_clauses + } catch (error) { + return null; + } + } + Future?> getStops() => _client.getJsonList( _base.resolve("stops"), Stop.fromJson, diff --git a/src/client/lib/src/services/api_client.dart b/src/client/lib/src/services/api_client.dart index 08f54d1..c1ef622 100644 --- a/src/client/lib/src/services/api_client.dart +++ b/src/client/lib/src/services/api_client.dart @@ -1,6 +1,7 @@ import "dart:convert"; import "package:client/data.dart"; +import "package:flutter/foundation.dart"; import "package:http/http.dart" as http; class ApiClient { @@ -19,9 +20,10 @@ class ApiClient { for (final json in listOfJson) fromJson(json), ]; + // Want to catch all errors for the UI + // ignore: avoid_catches_without_on_clauses } catch (error, stackTrace) { - // ignore: avoid_print - print("Error: $error\n$stackTrace"); + debugPrint("Error: $error\n$stackTrace"); return null; } } diff --git a/src/client/lib/src/view_models/home.dart b/src/client/lib/src/view_models/home.dart index e63e72b..4bcf9b5 100644 --- a/src/client/lib/src/view_models/home.dart +++ b/src/client/lib/src/view_models/home.dart @@ -64,6 +64,7 @@ class HomeModel extends ViewModel with HomeMarkers { super.updateEnd(coordinates, marker); } + String? pathText; Future search() async { final start = (lat: startLatitude, long: startLongitude); final end = (lat: endLatitude, long: endLongitude); @@ -71,16 +72,17 @@ class HomeModel extends ViewModel with HomeMarkers { if (end.lat == null || end.long == null) return; isSearching = true; isLoading = true; - final result = await services.api.getPath(start: start as Coordinates, end: end as Coordinates); - path = result; + final result = await services.api.getPath2(start: start as Coordinates, end: end as Coordinates); + pathText = result ?? "An error occurred"; + // path = result; isLoading = false; if (result == null) return; isSearching = false; - routes = [ - for (final step in result) [ - ...decodePolyline(step.trip.polyline), - ], - ]; + // routes = [ + // for (final step in result) [ + // ...decodePolyline(step.trip.polyline), + // ], + // ]; notifyListeners(); } } diff --git a/src/client/lib/src/view_models/home_markers.dart b/src/client/lib/src/view_models/home_markers.dart index f1ed1a9..82375ab 100644 --- a/src/client/lib/src/view_models/home_markers.dart +++ b/src/client/lib/src/view_models/home_markers.dart @@ -78,12 +78,11 @@ mixin HomeMarkers on ChangeNotifier { stopCounts[route] ??= 0; stopCounts[route] = stopCounts[route]! + 1; } - - if (stop.provider.contains("OCCT")) { - occtRouteNames.addAll(stop.routes); - } else { - bcRouteNames.addAll(stop.routes); - } + final namesList = switch (stop.provider) { + Provider.occt => occtRouteNames, + Provider.bc => bcRouteNames, + }; + namesList.addAll(stop.routes); } notifyListeners(); } diff --git a/src/client/lib/src/widgets/sidebar.dart b/src/client/lib/src/widgets/sidebar.dart index e6dc9d5..d7f5c85 100644 --- a/src/client/lib/src/widgets/sidebar.dart +++ b/src/client/lib/src/widgets/sidebar.dart @@ -32,27 +32,29 @@ class Sidebar extends ReusableReactiveWidget { Tab(text: provider), ], ), - Expanded( - child: !model.shouldShowMarkers - ? const Center(child: Text("Choose start or end location")) - : TabBarView( - children: [ - for (final (_, routesList) in model.providers) - ListView( - children: [ - for (final route in routesList) CheckboxListTile( - title: Text(route, maxLines: 1), - subtitle: Text( - "${model.stopCounts[route] ?? 0} stops", - maxLines: 1, - ), - value: model.routesToShow.contains(route), - onChanged: (value) => model.showRoute(route, shouldShow: value!), - ), - ], + if (!model.shouldShowMarkers && model.pathText != null) + Center(child: Text(model.pathText!, style: context.textTheme.bodySmall)), + if (!model.shouldShowMarkers && model.pathText == null) + const Center(child: Text("Choose start or end location")), + if (model.shouldShowMarkers) Expanded( + child: TabBarView( + children: [ + for (final (_, routesList) in model.providers) + ListView( + children: [ + for (final route in routesList) CheckboxListTile( + title: Text(route, maxLines: 1), + subtitle: Text( + "${model.stopCounts[route] ?? 0} stops", + maxLines: 1, + ), + value: model.routesToShow.contains(route), + onChanged: (value) => model.showRoute(route, shouldShow: value!), ), - ], - ), + ], + ), + ], + ), ), ], ), diff --git a/src/client/pubspec.lock b/src/client/pubspec.lock deleted file mode 100644 index ca86d13..0000000 --- a/src/client/pubspec.lock +++ /dev/null @@ -1,433 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" - source: hosted - version: "2.7.0" - async: - dependency: transitive - description: - name: async - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 - url: "https://pub.dev" - source: hosted - version: "2.12.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - build_cli_annotations: - dependency: transitive - description: - name: build_cli_annotations - sha256: b59d2769769efd6c9ff6d4c4cede0be115a566afc591705c2040b707534b1172 - url: "https://pub.dev" - source: hosted - version: "2.1.0" - characters: - dependency: transitive - description: - name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - clock: - dependency: transitive - description: - name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.dev" - source: hosted - version: "1.1.2" - collection: - dependency: transitive - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - convert: - dependency: transitive - description: - name: convert - sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 - url: "https://pub.dev" - source: hosted - version: "3.1.2" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - csv: - dependency: "direct main" - description: - name: csv - sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c - url: "https://pub.dev" - source: hosted - version: "6.0.0" - dhttpd: - dependency: "direct dev" - description: - name: dhttpd - sha256: "2e24765d7569b8e0a02a441e3cf96f09cca69dfecba646e7e9f6b3ab45a2f3fe" - url: "https://pub.dev" - source: hosted - version: "4.1.0" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" - url: "https://pub.dev" - source: hosted - version: "1.3.2" - fixnum: - dependency: "direct main" - description: - name: fixnum - sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_plugin_android_lifecycle: - dependency: transitive - description: - name: flutter_plugin_android_lifecycle - sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" - url: "https://pub.dev" - source: hosted - version: "2.0.27" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - go_router: - dependency: "direct main" - description: - name: go_router - sha256: f02fd7d2a4dc512fec615529824fdd217fecb3a3d3de68360293a551f21634b3 - url: "https://pub.dev" - source: hosted - version: "14.8.1" - google_maps: - dependency: transitive - description: - name: google_maps - sha256: "4d6e199c561ca06792c964fa24b2bac7197bf4b401c2e1d23e345e5f9939f531" - url: "https://pub.dev" - source: hosted - version: "8.1.1" - google_maps_flutter: - dependency: "direct main" - description: - name: google_maps_flutter - sha256: b42ff7f3875a5eedbe388d883100561b85c62beed1c39ad66dd60537c75bb424 - url: "https://pub.dev" - source: hosted - version: "2.12.0" - google_maps_flutter_android: - dependency: transitive - description: - name: google_maps_flutter_android - sha256: "0ede4ae8326335c0c007c8c7a8c9737449263123385e2bdf49f3e71103b2dc2e" - url: "https://pub.dev" - source: hosted - version: "2.16.0" - google_maps_flutter_ios: - dependency: transitive - description: - name: google_maps_flutter_ios - sha256: ef72c822930ce69515cb91c10cd88cfb8b26296f765808a43cbc9a10eaffacfe - url: "https://pub.dev" - source: hosted - version: "2.15.0" - google_maps_flutter_platform_interface: - dependency: transitive - description: - name: google_maps_flutter_platform_interface - sha256: "970c8f766c02909c7be282dea923c971f83a88adaf07f8871d0aacebc3b07bb2" - url: "https://pub.dev" - source: hosted - version: "2.11.1" - google_maps_flutter_web: - dependency: transitive - description: - name: google_maps_flutter_web - sha256: a45786ea6691cc7cdbe2cf3ce2c2daf4f82a885745666b4a36baada3a4e12897 - url: "https://pub.dev" - source: hosted - version: "0.5.12" - html: - dependency: "direct main" - description: - name: html - sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" - url: "https://pub.dev" - source: hosted - version: "0.15.5" - http: - dependency: "direct main" - description: - name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f - url: "https://pub.dev" - source: hosted - version: "1.3.0" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" - url: "https://pub.dev" - source: hosted - version: "4.1.2" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec - url: "https://pub.dev" - source: hosted - version: "10.0.8" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 - url: "https://pub.dev" - source: hosted - version: "3.0.9" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.dev" - source: hosted - version: "1.3.0" - matcher: - dependency: transitive - description: - name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 - url: "https://pub.dev" - source: hosted - version: "0.12.17" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.dev" - source: hosted - version: "0.11.1" - meta: - dependency: transitive - description: - name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c - url: "https://pub.dev" - source: hosted - version: "1.16.0" - mime: - dependency: transitive - description: - name: mime - sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - polyline_tools: - dependency: "direct main" - description: - name: polyline_tools - sha256: "8c523335bb8d16fb0c7835916ed94d97d9a063a4386e9193bd6e8fe233591df9" - url: "https://pub.dev" - source: hosted - version: "0.0.2" - sanitize_html: - dependency: transitive - description: - name: sanitize_html - sha256: "12669c4a913688a26555323fb9cec373d8f9fbe091f2d01c40c723b33caa8989" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - shared: - dependency: "direct main" - description: - path: "../shared" - relative: true - source: path - version: "1.0.0" - shelf: - dependency: transitive - description: - name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 - url: "https://pub.dev" - source: hosted - version: "1.4.2" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 - url: "https://pub.dev" - source: hosted - version: "1.1.3" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" - url: "https://pub.dev" - source: hosted - version: "1.10.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" - url: "https://pub.dev" - source: hosted - version: "1.12.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 - url: "https://pub.dev" - source: hosted - version: "2.1.1" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.dev" - source: hosted - version: "1.4.1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - test_api: - dependency: transitive - description: - name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd - url: "https://pub.dev" - source: hosted - version: "0.7.4" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - very_good_analysis: - dependency: "direct dev" - description: - name: very_good_analysis - sha256: "1fb637c0022034b1f19ea2acb42a3603cbd8314a470646a59a2fb01f5f3a8629" - url: "https://pub.dev" - source: hosted - version: "6.0.0" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" - url: "https://pub.dev" - source: hosted - version: "14.3.1" - web: - dependency: "direct main" - description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.dev" - source: hosted - version: "1.1.1" -sdks: - dart: ">=3.7.0 <4.0.0" - flutter: ">=3.27.0" diff --git a/src/client/pubspec.yaml b/src/client/pubspec.yaml index c80c9ea..3dd8b15 100644 --- a/src/client/pubspec.yaml +++ b/src/client/pubspec.yaml @@ -6,6 +6,7 @@ version: 0.1.0+1 environment: sdk: ^3.5.0 +resolution: workspace dependencies: fixnum: ^1.1.1 csv: ^6.0.0 @@ -24,7 +25,6 @@ dev_dependencies: dhttpd: ^4.1.0 flutter_test: sdk: flutter - very_good_analysis: ^6.0.0 flutter: uses-material-design: true diff --git a/src/client/test/widget_test.dart b/src/client/test/widget_test.dart deleted file mode 100644 index 1888d2a..0000000 --- a/src/client/test/widget_test.dart +++ /dev/null @@ -1,30 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:client/main.dart'; - -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); - - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); - - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); - }); -} diff --git a/src/pubspec.yaml b/src/pubspec.yaml new file mode 100644 index 0000000..015f432 --- /dev/null +++ b/src/pubspec.yaml @@ -0,0 +1,10 @@ +name: cs445 + +environment: + sdk: ^3.7.0 + +workspace: + - shared + - client +dev_dependencies: + very_good_analysis: ^7.0.0 diff --git a/src/server/GET_STOPS.json b/src/server/GET_STOPS.json index 78f3a73..40a40b8 100644 --- a/src/server/GET_STOPS.json +++ b/src/server/GET_STOPS.json @@ -5,7 +5,7 @@ "description": "BC Junction is last inbound stop", "latitude": 42.101354, "longitude": -75.910801, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave", @@ -19,6 +19,20 @@ "51) K Commuter", "53) Corporate Park", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_3", + "BCT_5", + "BCT_7", + "BCT_8", + "BCT_12", + "BCT_15", + "BCT_28", + "BCT_35", + "BCT_40", + "BCT_51", + "BCT_53", + "BCT_57" ] }, { @@ -27,10 +41,14 @@ "description": "BC Junction Drop Off", "latitude": 42.100719, "longitude": -75.91096, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -39,13 +57,20 @@ "description": "Binghamton High School. This bus will only run when school is in session.", "latitude": 42.099044, "longitude": -75.919114, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave", "12) Conkin Av", "28) Robinson St", "40) Chenango St" + ], + "route_ids": [ + "BCT_3", + "BCT_5", + "BCT_12", + "BCT_28", + "BCT_40" ] }, { @@ -54,9 +79,12 @@ "description": "The stop is located near the ticket booth at the Ross Park Zoo Binghamton", "latitude": 42.075096, "longitude": -75.905869, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -65,9 +93,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 5 Dock A", "latitude": 42.101845, "longitude": -75.910717, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -76,9 +107,12 @@ "description": "The stop is located on a sign post after Earle Dr across from the Ross Park Zoo Binghamton", "latitude": 42.075542, "longitude": -75.905022, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -87,9 +121,12 @@ "description": "The stop is located on a sign post after Hawley St across from Columbus Park Binghamton", "latitude": 42.097018, "longitude": -75.906677, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -98,9 +135,12 @@ "description": "The stop is located on a sign post about 20 feet before Kane Ave at a private residence Binghamton", "latitude": 42.076202, "longitude": -75.906616, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -109,9 +149,12 @@ "description": "The stop is located on a utility pole after Susquehanna St in front of Woodburn Court One Binghamton", "latitude": 42.09523, "longitude": -75.90863, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -120,9 +163,12 @@ "description": "The stop is located on a sign post about 50 feet before Spurr Ave at a private residence Binghamton", "latitude": 42.076294, "longitude": -75.907448, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -131,9 +177,12 @@ "description": "The stop is located on a sign post across from McNamara Ave near a private residence Binghamton", "latitude": 42.089417, "longitude": -75.906494, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -142,9 +191,12 @@ "description": "The stop is located on a sign post about 100 feet before Mary St at a private residence Binghamton", "latitude": 42.076672, "longitude": -75.91021, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -153,9 +205,12 @@ "description": "The stop is located on a sign post about 20 feet before Newton Ave at a private residence Binghamton", "latitude": 42.088409, "longitude": -75.906311, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -164,9 +219,12 @@ "description": "The stop is located on a sign post at the corner before Park Ave at a private residence Binghamton", "latitude": 42.077007, "longitude": -75.913307, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -175,9 +233,12 @@ "description": "The stop is located on a sign post at the corner before Genesee Ave at a private residence Binghamton", "latitude": 42.088226, "longitude": -75.908028, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -186,9 +247,12 @@ "description": "The stop is located on a sign post at the corner before Maria Manor near Nips Binghamton", "latitude": 42.078358, "longitude": -75.91452, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -197,9 +261,12 @@ "description": "The stop is located on a sign post at the corner before Tremont Ave at a private residence Binghamton", "latitude": 42.088207, "longitude": -75.909241, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -208,9 +275,12 @@ "description": "The stop is located on a sign post at the corner before Corbett Ave by a parking lot Binghamton", "latitude": 42.07959, "longitude": -75.914986, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -219,9 +289,12 @@ "description": "The stop is located on a sign post about 20 feet before James St at a private residence Binghamton", "latitude": 42.085888, "longitude": -75.909132, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -230,9 +303,12 @@ "description": "The stop is located on a telephone pole at the corner before Sherwood Ave at a private residence Binghamton", "latitude": 42.080452, "longitude": -75.915306, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -241,9 +317,12 @@ "description": "The stop is located on a sign post at the corner before Mary St at a private residence Binghamton", "latitude": 42.085781, "longitude": -75.911278, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -252,9 +331,12 @@ "description": "The stop is located on a sign post about 25 feet before Guilfoyle Ave at a private residence Binghamton", "latitude": 42.081745, "longitude": -75.915634, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -263,9 +345,12 @@ "description": "The stop is located on a telephone pole at the corner before S Washington St across from the Binghamton General Hospital Parking Lot Binghamton", "latitude": 42.085766, "longitude": -75.912514, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -274,9 +359,12 @@ "description": "The stop is located on a sign post about 20 feet before Morris St at a private residence Binghamton", "latitude": 42.083305, "longitude": -75.915398, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -285,9 +373,12 @@ "description": "The stop is located on a sign post about 50 feet before Morris St near the NYSEG substation Binghamton", "latitude": 42.083637, "longitude": -75.912666, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -296,9 +387,12 @@ "description": "The stop is located on a sign post near the Emergency Room at the Binghamton General Hospital. There is a bus shelter here.", "latitude": 42.086275, "longitude": -75.915295, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -307,9 +401,12 @@ "description": "The stop is located on a telephone about 50 feet before Sherwood Ave at a private residence Binghamton", "latitude": 42.080822, "longitude": -75.912529, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -318,9 +415,12 @@ "description": "The stop is located in front of the Binghamton General Hospital Main entrance- Binghamton", "latitude": 42.08663, "longitude": -75.914155, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -329,9 +429,12 @@ "description": "The stop is located about 200 feet after Manier St Binghamton.", "latitude": 42.085847, "longitude": -75.916483, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -340,9 +443,12 @@ "description": "The stop is located on a sign post near a telephone pole across from Woodland Ave at a private residence Binghamton", "latitude": 42.077927, "longitude": -75.912422, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -351,9 +457,12 @@ "description": "The stop is located on telephone pole about 20 feet before Morgan Rd at a private residence Binghamton", "latitude": 42.076893, "longitude": -75.912376, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -362,9 +471,12 @@ "description": "The stop is located on a sign post about 200 feet before Exchange St near Woodburn Court Two Binghamton", "latitude": 42.095585, "longitude": -75.909393, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -373,9 +485,12 @@ "description": "The stop is located on a sign post after Lisle Ave near Columbus Park Binghamton", "latitude": 42.097377, "longitude": -75.906686, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave" + ], + "route_ids": [ + "BCT_3" ] }, { @@ -384,9 +499,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 4 Dock A", "latitude": 42.101462, "longitude": -75.910828, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -395,9 +513,12 @@ "description": "The stop is located on a sign post about 50 feet before Murray Hill Rd at a private residence Vestal", "latitude": 42.0824641752712, "longitude": -75.9587545817369, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -406,10 +527,14 @@ "description": "The stop is located on a utility pole about 50 feet after Exchange St by the Family Court Binghamton", "latitude": 42.097252, "longitude": -75.910271, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_5", + "BCT_57" ] }, { @@ -418,9 +543,12 @@ "description": "The stop is located on a sign post before Country Club at a private residence Vestal", "latitude": 42.082924, "longitude": -75.954178, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -429,11 +557,16 @@ "description": "The stop is located on a sign post about 150 feet before Tremont Ave just after the State St overpass Binghamton", "latitude": 42.092323, "longitude": -75.910835, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave", "53) Corporate Park" + ], + "route_ids": [ + "BCT_3", + "BCT_5", + "BCT_53" ] }, { @@ -442,9 +575,12 @@ "description": "The stop is located on a sign post after Deerfield Place at a private residence Vestal", "latitude": 42.085739, "longitude": -75.954918, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -453,11 +589,16 @@ "description": "The stop is located on telephone pole before Mill St at a private residence Binghamton", "latitude": 42.092773, "longitude": -75.906876, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave", "53) Corporate Park" + ], + "route_ids": [ + "BCT_3", + "BCT_5", + "BCT_53" ] }, { @@ -466,9 +607,12 @@ "description": "The stop is located on a sign post before Plaza Dr at at private residence Vestal", "latitude": 42.088062, "longitude": -75.956306, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -477,11 +621,16 @@ "description": "The stop is located on a sign post about 100 feeet after High St across from the Park Diner Binghamton", "latitude": 42.092896, "longitude": -75.905037, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave", "53) Corporate Park" + ], + "route_ids": [ + "BCT_3", + "BCT_5", + "BCT_53" ] }, { @@ -490,9 +639,12 @@ "description": "The stop is located on a sign post near the entrance to The Meadows Apartments Vestal", "latitude": 42.08952, "longitude": -75.95575, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -501,10 +653,14 @@ "description": "The stop is located on a sign post after Conklin Ave across from Dynamic Brake Binghamton", "latitude": 42.093193, "longitude": -75.901817, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -513,9 +669,12 @@ "description": "The stop is located on a sign post across from 120 Executive Plaza Dr Vestal", "latitude": 42.091724, "longitude": -75.955055, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -524,10 +683,14 @@ "description": "The stop is located on a sign post before Vestal Ave at a private residence Binghamton", "latitude": 42.0912008223956, "longitude": -75.9015659687652, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -536,9 +699,12 @@ "description": "The stop is located by the University Plaza Clocktower Vestal", "latitude": 42.09185, "longitude": -75.951851, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -547,10 +713,14 @@ "description": "The stop is located on telephone pole before Carlton St at a private residence Binghamton", "latitude": 42.090904, "longitude": -75.903786, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -559,9 +729,12 @@ "description": "The stop is located on a sign post after Normandy Ct at a private residence Binghamton", "latitude": 42.091164, "longitude": -75.94548, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -570,10 +743,14 @@ "description": "The stop is located on a sign post about 40 feet before Mill St near Anita's Hair Salon Binghamton", "latitude": 42.090778, "longitude": -75.906334, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -582,9 +759,12 @@ "description": "The stop is located on a sign post before Larchmont Rd at a private residence Binghamton", "latitude": 42.089184, "longitude": -75.941658, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -593,9 +773,12 @@ "description": "The stop is located on a sign post before Livingston St by St John and St Andrew Church Binghamton", "latitude": 42.090469, "longitude": -75.907883, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -604,9 +787,12 @@ "description": "The stop is located on a sign post before Jutland Rd at a private residence Binghamton", "latitude": 42.087399, "longitude": -75.937752, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -615,9 +801,12 @@ "description": "The stop is located on a sign post before Tremont Ave at a private residence Binghamton", "latitude": 42.090199, "longitude": -75.909294, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -626,9 +815,12 @@ "description": "The stop is located on a sign post before Hawthorne Rd at a private residence Binghamton", "latitude": 42.086082, "longitude": -75.933235, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -637,9 +829,12 @@ "description": "The stop is located on a telephone pole before New St by Lincoln Court Apts Binghamton", "latitude": 42.089909, "longitude": -75.911003, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -648,9 +843,12 @@ "description": "The stop is located on a telephone pole before Clifton Blvd at a private residence Binghamton", "latitude": 42.085644, "longitude": -75.930611, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -659,9 +857,12 @@ "description": "The stop is located on a sign post before Mary St near the Southview US Post Office Binghamton", "latitude": 42.089748, "longitude": -75.91188, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -670,9 +871,12 @@ "description": "The stop is located on a telephone pole at the corner after Edgebrook Rd at a private residence Binghamton", "latitude": 42.085178, "longitude": -75.928093, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -681,9 +885,12 @@ "description": "The stop is located on a sign post across from Mitchell Ave across from the Mirabito Binghamton", "latitude": 42.088985, "longitude": -75.914597, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -692,9 +899,12 @@ "description": "The stop is located on a sign post before Denton Rd at a private residence Binghamton", "latitude": 42.084831, "longitude": -75.92569, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -703,10 +913,14 @@ "description": "The stop is located on a sign post about 50 feet before Pennsylvania Ave by the Twin Tiers Eye Care Binghamton", "latitude": 42.08844, "longitude": -75.915855, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -715,9 +929,12 @@ "description": "The stop is located on a telephone pole before Brookfield Rd across from MacArthur Park Binghamton", "latitude": 42.085743, "longitude": -75.921867, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -726,10 +943,14 @@ "description": "The stop is located on a sign post after Rush Ave near the Park Ave Baptist Church Binghamton", "latitude": 42.087162, "longitude": -75.918831, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -738,9 +959,12 @@ "description": "The stop is located on a sign post before Rush Ave at a private residence Binghamton", "latitude": 42.087166, "longitude": -75.918526, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -749,10 +973,14 @@ "description": "The stop is located on a sign post before Brookfield Rd near MacArthur Park Binghamton", "latitude": 42.086308, "longitude": -75.920822, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -761,9 +989,12 @@ "description": "The stop is located on a sign post about 20 feet before Pennsylvania Ave near Auto Zone Binghamton", "latitude": 42.087914, "longitude": -75.916733, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -772,10 +1003,14 @@ "description": "The stop is located on a sign post after Denton Rd Binghamton", "latitude": 42.084938, "longitude": -75.925682, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -784,10 +1019,14 @@ "description": "The stop is located on a sign post near Dunkin Donuts Binghamton", "latitude": 42.088661, "longitude": -75.915083, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -796,10 +1035,14 @@ "description": "The stop is located on a sign post across from Edgebrook Rd Binghamton", "latitude": 42.0853, "longitude": -75.927917, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -808,9 +1051,12 @@ "description": "The stop is located on a telephone pole about 20 feet before Mary St across from the Southview Post Office Binghamton", "latitude": 42.089588, "longitude": -75.912254, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -819,10 +1065,14 @@ "description": "The stop is located on a telephone pole across from Clifton Blvd at a private residence Binghamton", "latitude": 42.08567, "longitude": -75.930183, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -831,9 +1081,12 @@ "description": "The stop is located on a sign post before Vine St across from Lincoln Court Apts Binghamton", "latitude": 42.089813, "longitude": -75.911011, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -842,10 +1095,14 @@ "description": "The stop is located on a sign post near Ivanhoe Rd- Binghamton", "latitude": 42.086548, "longitude": -75.935274, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -854,9 +1111,12 @@ "description": "The stop is located on a sign post before Tremont Ave at a private residence Binghamton", "latitude": 42.090034, "longitude": -75.909752, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -865,10 +1125,14 @@ "description": "The stop is located across from Jutland Rd Binghamton", "latitude": 42.087406, "longitude": -75.937515, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -877,9 +1141,12 @@ "description": "The stop is located on a sign post before Mill St near Loaves & Fishes Pantry Binghamton", "latitude": 42.090599, "longitude": -75.906723, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -888,10 +1155,14 @@ "description": "The stop is located on a telephone pole across from Larchmont Rd Binghamton", "latitude": 42.089237, "longitude": -75.941528, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -900,9 +1171,12 @@ "description": "The stop is located on a sign post before Telegraph St at a private residence Binghamton", "latitude": 42.090961, "longitude": -75.901649, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -911,10 +1185,14 @@ "description": "The stop is located on the NY 434 highway sign before the Vestal Pkwy Binghamton", "latitude": 42.091019, "longitude": -75.944885, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -923,9 +1201,12 @@ "description": "The stop is located on a sign post after Lucy St by Dynamic Brake Binghamton", "latitude": 42.093105, "longitude": -75.901672, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -934,9 +1215,12 @@ "description": "The stop is located on a sign post near the Park Diner", "latitude": 42.093016, "longitude": -75.904945, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -945,9 +1229,12 @@ "description": "The stop is located on a sign post across from the Armed Forces Recruiting Center in the University Plaza Vestal", "latitude": 42.092083, "longitude": -75.952271, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -956,10 +1243,14 @@ "description": "The stop is located on a sign post about 200 feet after Exchange St across from the Islamic Awareness Center Binghamton", "latitude": 42.092819, "longitude": -75.908264, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave", "53) Corporate Park" + ], + "route_ids": [ + "BCT_5", + "BCT_53" ] }, { @@ -968,9 +1259,12 @@ "description": "The stop is located on a sign post at 300 Plaza Dr Vestal", "latitude": 42.091267, "longitude": -75.955399, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -979,9 +1273,12 @@ "description": "The stop is located on a street lamp pole before Exchange St near the YWCA Binghamton", "latitude": 42.097202, "longitude": -75.90992, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -990,9 +1287,12 @@ "description": "The stop is located on a sign post across from Christ the King Church Vestal", "latitude": 42.089333, "longitude": -75.955917, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -1001,10 +1301,14 @@ "description": "The stop is located on a sign post about 50 feet before Court St at a private business Binghamton.", "latitude": 42.0994, "longitude": -75.907672, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "3) Park Ave", "5) Vestal Ave" + ], + "route_ids": [ + "BCT_3", + "BCT_5" ] }, { @@ -1013,9 +1317,12 @@ "description": "The stop is located on a sign post across from Clubhouse Rd by the Hayes Community Apartments Vestal", "latitude": 42.087379, "longitude": -75.95565, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -1024,9 +1331,12 @@ "description": "The stop is located on a sign post after Deerfield Place at a private residence Vestal", "latitude": 42.085278, "longitude": -75.955124, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -1035,9 +1345,12 @@ "description": "The stop is located on a telephone pole before Washington Dr across from Vestal Hills Elementary School Vestal", "latitude": 42.083408, "longitude": -75.954483, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -1046,9 +1359,12 @@ "description": "The stop is located on a sign post at the corner before Midvale Rd at a private residence Vestal", "latitude": 42.082886, "longitude": -75.955551, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -1057,9 +1373,12 @@ "description": "The stop is located on a sign post before Lehigh Ave at a private residence Vestal", "latitude": 42.082512, "longitude": -75.959602, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave" + ], + "route_ids": [ + "BCT_5" ] }, { @@ -1068,10 +1387,14 @@ "description": "The stop is located on a sign post about 50 feet after the entrance to Harry L Drive shopping plaza Johnson City", "latitude": 42.123752, "longitude": -75.969418, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1080,9 +1403,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 10 Dock B", "latitude": 42.101173, "longitude": -75.910778, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1091,10 +1417,14 @@ "description": "The stop is located on a sign post before the crosswalk by the Northside Park and across from the Small Mall Johnson City", "latitude": 42.122543, "longitude": -75.963019, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1103,9 +1433,12 @@ "description": "The stop is located on a sign post about 25 feet after Oak St at private residence Binghamton", "latitude": 42.104534, "longitude": -75.918236, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1114,10 +1447,14 @@ "description": "The stop is located on a sign post at the corner before N. Harrison St by Therapeutic Day Spa Johnson City", "latitude": 42.122647, "longitude": -75.959918, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1126,9 +1463,12 @@ "description": "The stop is located on a sign post at the crosswalk before Murray St near Pat's Hairstyling Binghamton", "latitude": 42.104729, "longitude": -75.919327, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1137,10 +1477,14 @@ "description": "The stop is located on a sign post before the crosswalk at N. Broad St across from the Harry L Apartments Johnson City", "latitude": 42.122908, "longitude": -75.957115, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1149,9 +1493,12 @@ "description": "The stop is located on a sign post about 150 feet after Mygatt St near the GBHC Community Center Binghamton", "latitude": 42.105404, "longitude": -75.922943, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1160,10 +1507,14 @@ "description": "The stop is located on a telephone pole at the crosswalk before Jay St by the Kwik Fill Johnson City", "latitude": 42.122989, "longitude": -75.955027, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1172,9 +1523,12 @@ "description": "The stop is located on a sign post at the corner before St Cyril Ave in front St Cyril Church Binghamton", "latitude": 42.105797, "longitude": -75.925232, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1183,10 +1537,14 @@ "description": "The stop is located on a telephone pole before Myrtle Ave by the Ave Maria Catholic Shop Johnson City", "latitude": 42.1225312982467, "longitude": -75.9537960313409, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1195,9 +1553,12 @@ "description": "The stop is located on a sign post across from Hudson St near Creative Beginnings Salon Binghamton", "latitude": 42.106232, "longitude": -75.927734, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1206,10 +1567,14 @@ "description": "The stop is located on a sign post at the corner before Lester Ave near So Jealous Salon Johnson City", "latitude": 42.121452, "longitude": -75.950578, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1218,9 +1583,12 @@ "description": "The stop is located on a sign post about 150 feet after Charles St across from Paradise Hair World Binghamton", "latitude": 42.106446, "longitude": -75.92887, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1229,10 +1597,14 @@ "description": "The stop is located on a sign post at the corner before Virgnia Ave by the PMP Deli Johnson City", "latitude": 42.121344, "longitude": -75.949451, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1241,9 +1613,12 @@ "description": "The stop is located on a sign post about 150 feet after Jarvis St near the First Ward Senior Center Binghamton", "latitude": 42.106823, "longitude": -75.930031, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1252,10 +1627,14 @@ "description": "The stop is located on a sign post about 100 feet before Airport Rd by Arrowhead Bookstore Johnson City", "latitude": 42.122124, "longitude": -75.946953, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1264,9 +1643,12 @@ "description": "The stop is located on a sign post at the corner after Colfax Ave across from Rogers Trucking Binghamton", "latitude": 42.107761, "longitude": -75.931885, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1275,9 +1657,12 @@ "description": "The stop is located on a sign post about 20 feet after Holland St near Kovarik Hardware Binghamton", "latitude": 42.108501, "longitude": -75.933342, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1286,10 +1671,14 @@ "description": "The stop is located on a sign post about 200 feet after Columbus St by the Polish Community Center Binghamton", "latitude": 42.1166877599231, "longitude": -75.9427161000257, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1298,9 +1687,12 @@ "description": "The stop is located on a sign post at the corner after Wilson St across Lindsey's Laundry Service Binghamton", "latitude": 42.109467, "longitude": -75.935265, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1309,10 +1701,14 @@ "description": "The stop is located on a sign post between Tracy St and Glenwood Ave near the traffic light Binghamton", "latitude": 42.1159751157749, "longitude": -75.941229660208, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1321,9 +1717,12 @@ "description": "The stop is located on a sign post at the corner before Janette Ave across from the Dollar General Binghamton", "latitude": 42.110294, "longitude": -75.936852, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1332,9 +1731,12 @@ "description": "The stop is located before Downs Ave across from Grace Tabernacle Community Center Binghamton", "latitude": 42.114563, "longitude": -75.940407, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1343,9 +1745,12 @@ "description": "The stop is located on a sign post before Glenwood Ave at the curb cut out near theHoly Spirit Byzantine Catholic Church Binghamton", "latitude": 42.1109570174629, "longitude": -75.9381212578104, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1354,9 +1759,12 @@ "description": "The stop is located on a sign post about 25 feet after Miles St by Mar-Con's Hairstyling Binghamton", "latitude": 42.112934, "longitude": -75.939514, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1365,9 +1773,12 @@ "description": "The stop is located on a sign post at the corner before Julian St across from the Hess Express Binghamton", "latitude": 42.112568, "longitude": -75.939133, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1376,9 +1787,12 @@ "description": "The stop is located on a telephone pole at the corner before Belknap Ave by the Hess Express Binghamton", "latitude": 42.111938, "longitude": -75.939056, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1387,9 +1801,12 @@ "description": "The stop is located on a sign post after Judson Ave near the Grace Tabernacle Community Center Binghamton", "latitude": 42.114708, "longitude": -75.940269, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1398,9 +1815,12 @@ "description": "The stop is located on a sign post about 100 feet after Glenwood Ave across from Holy Sprirt Byzantine Church Binghamton", "latitude": 42.110728848927, "longitude": -75.9379307776033, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1409,9 +1829,12 @@ "description": "The stop is located on a sign post at the corner before Prospect St by Matty B's Place Binghamton", "latitude": 42.1157135473434, "longitude": -75.940786326486, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1420,9 +1843,12 @@ "description": "The stop is located on a sign post before Wilson St across from Ascension Lutheran Church Binghamton", "latitude": 42.109635748266, "longitude": -75.9357787502624, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1431,10 +1857,14 @@ "description": "The stop is located on a sign post before True St near the I86 overpass Binghamton", "latitude": 42.117414, "longitude": -75.94044, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1443,9 +1873,12 @@ "description": "The stop is located on a sign post at the crosswalk before Holland St across from Kovarik Hardware Binghamton", "latitude": 42.108356, "longitude": -75.933388, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1454,10 +1887,14 @@ "description": "The stop is located on sign post after and across from Sunset Dr Town of Dickinson", "latitude": 42.121973, "longitude": -75.937148, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1466,9 +1903,12 @@ "description": "The stop is located on a telehphone pole near All Spec Finishing Binghamton", "latitude": 42.107038, "longitude": -75.930742, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1477,10 +1917,14 @@ "description": "The stop is located a sign post across from Maiden Ln Town of Dickinson", "latitude": 42.12696, "longitude": -75.932697, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1489,10 +1933,14 @@ "description": "The stop is located near Bldg G-H", "latitude": 42.13123, "longitude": -75.928148, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1501,9 +1949,12 @@ "description": "This stop is located across from Charles St Binghamton", "latitude": 42.106259, "longitude": -75.928388, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1512,10 +1963,14 @@ "description": "The stop is located near Bldg U-V", "latitude": 42.125815, "longitude": -75.929361, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1524,9 +1979,12 @@ "description": "The stop is located on a sign post about 10 feet before Crandall St across from the Lincoln Hotel Binghamton", "latitude": 42.105846, "longitude": -75.926071, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1535,10 +1993,14 @@ "description": "The stop is located near Bldg 56-59", "latitude": 42.124851, "longitude": -75.927267, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1547,9 +2009,12 @@ "description": "The stop is located on a sign post at the crosswalk across from Mygatt St across from the GBHC Community Center", "latitude": 42.1050772168886, "longitude": -75.9218147635845, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1558,10 +2023,14 @@ "description": "The stop is located near the Community Bldg", "latitude": 42.125461, "longitude": -75.925759, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1570,9 +2039,12 @@ "description": "The stop is located on a sign post before Murray St across from Camelot Jewelers Binghamton", "latitude": 42.104675, "longitude": -75.919708, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1581,10 +2053,14 @@ "description": "The stop is lcoated near Bldg 12-15", "latitude": 42.125574, "longitude": -75.925716, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1593,9 +2069,12 @@ "description": "The stop is located on a sign post before Oak St near Luke's Anitiques Binghamton", "latitude": 42.1044214721223, "longitude": -75.9181682758733, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1604,10 +2083,14 @@ "description": "The stop is located near Bldg 56-59", "latitude": 42.124915, "longitude": -75.927414, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1616,9 +2099,12 @@ "description": "The stop is located on a sign post at the crosswalk before Front St near Botnick Chevrolet Binghamton", "latitude": 42.10371, "longitude": -75.916443, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1627,10 +2113,14 @@ "description": "The stop is lcoated near Bldg U-V", "latitude": 42.125824, "longitude": -75.929208, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1639,9 +2129,12 @@ "description": "The stop is located on a utility pole about 150 feet after E Clinton St by the Double Tree Hotel Binghamton", "latitude": 42.102219, "longitude": -75.913528, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1650,10 +2143,14 @@ "description": "The stop is located near an access road.", "latitude": 42.130093, "longitude": -75.927437, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1662,10 +2159,14 @@ "description": "The stop is located near Bldg G-H", "latitude": 42.131327, "longitude": -75.928133, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1674,10 +2175,14 @@ "description": "The stop is located near the BOCES campus parking lot. A bus shelter is here.", "latitude": 42.129228, "longitude": -75.932917, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1686,10 +2191,14 @@ "description": "The stop is located at the corner before Maiden Ln at a private residence Binghamton", "latitude": 42.127174, "longitude": -75.932689, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1698,10 +2207,14 @@ "description": "The stop is located near the front entrance of the facility.", "latitude": 42.124695, "longitude": -75.938691, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1710,10 +2223,14 @@ "description": "The stop is located on a sign post before Sunset Dr at a private residence Binghamton", "latitude": 42.12106, "longitude": -75.937964, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1722,10 +2239,14 @@ "description": "The stop is located on a sign post before Sowden St near the I86 overpass Town of Dickinson", "latitude": 42.117831, "longitude": -75.940485, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1734,10 +2255,14 @@ "description": "The stop is located on a sign post before Prospect Ave across from Matty B's Pub Binghamton", "latitude": 42.116123, "longitude": -75.940984, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1746,10 +2271,14 @@ "description": "The stop is located on a sign post across from Merrill St by the Church of the Holy Trinity Binghamton", "latitude": 42.116444, "longitude": -75.942123, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1758,10 +2287,14 @@ "description": "The stop is located on a sign post about 150 ft before Airport Rd near the Prospect Terrace Fire Station Binghamton.", "latitude": 42.1183547013954, "longitude": -75.9454884192568, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1770,9 +2303,12 @@ "description": "Service to 33 Lewis Rd is on request. See the 7 Clinton St schedule for more information", "latitude": 42.1404584127633, "longitude": -75.9391660690096, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St" + ], + "route_ids": [ + "BCT_7" ] }, { @@ -1781,10 +2317,14 @@ "description": "The stop is located on a sign post about 20 feet before Pavillon Rd near the CFJ Park Johnson City.", "latitude": 42.116867, "longitude": -75.948586, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1793,10 +2333,14 @@ "description": "The stop is located on a telephone after the I 86 overpass Johnson City.", "latitude": 42.1199, "longitude": -75.950394, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1805,10 +2349,14 @@ "description": "The stop is located on a sign post about 50 feet before Albany Ave by Cacciatores Johnson City", "latitude": 42.1217817081864, "longitude": -75.9511141066356, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1817,10 +2365,14 @@ "description": "The stop is located on a sign post at the corner before Pearl Ave by Rossi's Pizza Johnson City", "latitude": 42.12219818688, "longitude": -75.9525193926716, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1829,10 +2381,14 @@ "description": "The stop is located on a sign post about 10 feet before Myrtle Ave near the Harry L Pub Johnson City", "latitude": 42.122543, "longitude": -75.953606, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1841,10 +2397,14 @@ "description": "The stop is located on a sign post at the corner before Jay St across from the Kwik Fill in Johnson City", "latitude": 42.123079, "longitude": -75.954811, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1853,10 +2413,14 @@ "description": "The stop is located on a sign post about 50 feet after N. Arch St near CVS Johnson City", "latitude": 42.122916, "longitude": -75.95771, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1865,10 +2429,14 @@ "description": "The stop is located on a sign post at the curb cut out before N Hudson St Johnson City", "latitude": 42.122822, "longitude": -75.960724, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1877,10 +2445,14 @@ "description": "The stop is located on a sign post at the crosswalk before the entrance to the Small Mall Johnson City", "latitude": 42.122681, "longitude": -75.962914, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1889,10 +2461,14 @@ "description": "The stop is located on a sign post about 30 feet after the entrance to Friendly's Johnson City", "latitude": 42.124187251239, "longitude": -75.9700255516293, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City" + ], + "route_ids": [ + "BCT_7", + "BCT_17" ] }, { @@ -1901,10 +2477,14 @@ "description": "The stop is located in front of the Chenango Park & Ride Town of Chenango. There is a bus shelter here.", "latitude": 42.167835, "longitude": -75.874481, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -1913,9 +2493,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 11 Dock B", "latitude": 42.101609, "longitude": -75.910658, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -1924,9 +2507,12 @@ "description": "The stop is located on a sign post at the corner before Oak Dr. Town of Chenango.", "latitude": 42.168728, "longitude": -75.877625, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -1935,9 +2521,12 @@ "description": "The stop is located on a sign post before the entrance to Chenango Bridege Medical Town of Chenango.", "latitude": 42.168976, "longitude": -75.87896, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -1946,10 +2535,14 @@ "description": "The stop is located on a sign post across from North St near the Tri-Cities Apartments parking lot Binghamton", "latitude": 42.100578, "longitude": -75.916885, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "8) Front St" + ], + "route_ids": [ + "BCT_7", + "BCT_8" ] }, { @@ -1958,9 +2551,12 @@ "description": "The stop is located on a sign post about 50 feet after the entrance to Price Chopper Town of Chenango. A bus shelter is here.", "latitude": 42.16845, "longitude": -75.885548, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -1969,10 +2565,14 @@ "description": "The stop is located on a sign post before Gerard Ave across from Botnick Chevrolet Binghamton", "latitude": 42.102306, "longitude": -75.916359, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "8) Front St" + ], + "route_ids": [ + "BCT_7", + "BCT_8" ] }, { @@ -1981,9 +2581,12 @@ "description": "The stop is located on a sign post before the entrance to the Hillside Garden Center Town of Chenango.", "latitude": 42.167645, "longitude": -75.888466, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -1992,9 +2595,12 @@ "description": "The stop is located on telephone pole at the corner before McDonald Ave across from the Broome County Health Department Binghamton", "latitude": 42.105473, "longitude": -75.915451, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2003,9 +2609,12 @@ "description": "The stop is located on a sign post at the corner before Bishop Rd near the Coin Laundry Town of Chenango", "latitude": 42.165668, "longitude": -75.89019, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2014,9 +2623,12 @@ "description": "The stop is located on a sign post about 75 feet after Valley St in front of Catholic Charities Binghamton", "latitude": 42.108715, "longitude": -75.913666, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2025,9 +2637,12 @@ "description": "The stop is located on a sign post at the corner before Councilman Rd in front of Upfront Auto Town of Chenango", "latitude": 42.163883, "longitude": -75.891762, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2036,9 +2651,12 @@ "description": "The stop is located on a sign post about 150 feet before Franklin St by a flood wall across from U Save Auto Binghamton", "latitude": 42.110321, "longitude": -75.911064, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2047,9 +2665,12 @@ "description": "The stop is located on a sign post about 150 feet after Fuller Rd on the I-81 road sign in front of Sonny Manny's Town of Chenango", "latitude": 42.160706, "longitude": -75.894554, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2058,9 +2679,12 @@ "description": "The stop is located on a telephone pole on the corner before Rosedale Dr across from the Super 8. The bus will serve this bus stop on the outbound on request only.", "latitude": 42.124546, "longitude": -75.909851, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -2069,9 +2693,12 @@ "description": "The stop is located on a sign post about 50 feet before the entrance to the former Tokyo Sushi Buffet Town of Chenango", "latitude": 42.156811, "longitude": -75.896378, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2080,9 +2707,12 @@ "description": "The stop is located by the Tractor Supply Corp Binghamton", "latitude": 42.1521, "longitude": -75.898199, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2091,9 +2721,12 @@ "description": "This stop is located on a sign post after the entrance to Applebee's Binghamton", "latitude": 42.130081, "longitude": -75.905884, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2102,9 +2735,12 @@ "description": "The stop is located on a sign post in front of the Nimmonsburg Square Shopping Center sign there is a curb cut out and a bench. Town of Chenango", "latitude": 42.149342, "longitude": -75.899757, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2113,9 +2749,12 @@ "description": "The stop is located near the main entrance of the Broome County Jail Binghamton", "latitude": 42.13203, "longitude": -75.916191, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2124,9 +2763,12 @@ "description": "The stop is located on a sign post about 200 feet before Wallace Rd in front of Dependable Auto. Town of Chenango", "latitude": 42.145729, "longitude": -75.90255, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2135,9 +2777,12 @@ "description": "The stop is located on a sign post after the entrance to Lot 1 near BC Day Care Center SUNY Broome Campus. A bus shelter is here", "latitude": 42.132763, "longitude": -75.909126, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2146,9 +2791,12 @@ "description": "The stop is located on a sign post between N. Morningside Dr and S. Morningside Dr across from Comfort Inn. There is a bench here. Town of Chenango", "latitude": 42.141766, "longitude": -75.9039, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2157,9 +2805,12 @@ "description": "The stop is located on a sign post after the entrance to Lot 3 near Alumni Field SUNY Broome Campus", "latitude": 42.133491, "longitude": -75.911677, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2168,9 +2819,12 @@ "description": "The stop is located on a sign post about the 50 feet before N College Dr across from GHS Credit Union Binghamton", "latitude": 42.136887, "longitude": -75.905182, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2179,9 +2833,12 @@ "description": "The stop is located at the Pavilion near the SUNY Broome Student Center SUNY Broome Campus", "latitude": 42.136078, "longitude": -75.910828, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2190,9 +2847,12 @@ "description": "The stop is located near the Paul F. Titchener Hall. A bus shelter is here.", "latitude": 42.136602, "longitude": -75.906902, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2201,9 +2861,12 @@ "description": "The stop is located on a sign post across from Boland Rd in front of the GHS Credit Union Binghamton. A bus shelter is here.", "latitude": 42.137177, "longitude": -75.9049, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2212,9 +2875,12 @@ "description": "The stop is located on a sign post across from on a sign post Morningside Dr in front of the Comfort Inn Town of Chenango", "latitude": 42.141911, "longitude": -75.903641, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2223,9 +2889,12 @@ "description": "The stop is located on a sign post before the entrance to Maines Cash and Carry Town of Chenango", "latitude": 42.143173, "longitude": -75.90332, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2234,9 +2903,12 @@ "description": "The stop is located on a sign post across from Wallace Rd across from Dependable Auto Town of Chenango", "latitude": 42.145126, "longitude": -75.902679, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2245,9 +2917,12 @@ "description": "The stop is located on a sign post about 100 feet after Manor Dr in front of United Methodist Homes Binghamton. There is a bus shelter here.", "latitude": 42.130192, "longitude": -75.906105, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2256,9 +2931,12 @@ "description": "The stop is located on a sign post about 150 feet before Ethel St near the McDonald's Regional Offices Town of Chenango", "latitude": 42.14687, "longitude": -75.901367, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2267,9 +2945,12 @@ "description": "The stop is located on a sign post about 300 feet before Old Front St near McDonalds Binghamton", "latitude": 42.127499, "longitude": -75.907089, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2278,9 +2959,12 @@ "description": "The stop is located across from Nimmonsburg Square. There is a curb cutout and bench here. Town of Chenango", "latitude": 42.149388, "longitude": -75.899468, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2289,9 +2973,12 @@ "description": "The stop is located by Pinkies BBQ Binghamton NY", "latitude": 42.152056, "longitude": -75.897999, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2300,9 +2987,12 @@ "description": "The stop is located on a telephone pole about 200 feet after Franklin St in front Aamco Auto Repair Binghamton", "latitude": 42.110447, "longitude": -75.91114, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2311,9 +3001,12 @@ "description": "The stop is located on a sign post after the entrance to Northgate Plaza near a steet lamp in front of Creature Comforts Town of Chenango", "latitude": 42.156818, "longitude": -75.896049, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2322,9 +3015,12 @@ "description": "The stop is located on a telephone pole about 100 feet after Valley St across from Catholic Charities Binghamton", "latitude": 42.108818, "longitude": -75.913704, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2333,9 +3029,12 @@ "description": "The stop is located on a sign post before the entrance to Lowes near the Empire Vision Town of Chenango", "latitude": 42.160473, "longitude": -75.894405, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2344,9 +3043,12 @@ "description": "The stop is located on a sign post about 20 feet before Winding Way near the Broome County Health Department Binghamton", "latitude": 42.105469, "longitude": -75.915604, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2355,9 +3057,12 @@ "description": "The stop is located on a sign post at the corner before Quinn Rd near the Lori Ashley Salon Town of Chenango", "latitude": 42.162544, "longitude": -75.892517, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2366,9 +3071,12 @@ "description": "The stop is located on a sign post about 100 feet before North St in front of the Bridgwater Center for Rehabilitation Binghamton", "latitude": 42.1010711726257, "longitude": -75.9168843057789, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2377,9 +3085,12 @@ "description": "The stop is located on a sign post at the corner before Merrill Rd across from the Upfront Auto Town of Chenango", "latitude": 42.16407, "longitude": -75.891251, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2388,9 +3099,12 @@ "description": "The stop is located on a sign post about 200 feet before Front St by the 1st Congregational Church parking lot Binghamton", "latitude": 42.099361, "longitude": -75.917412, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2399,9 +3113,12 @@ "description": "The stop is located on a sign post at the corner before Bishop Rd near the Tioga State Bank Town of Chenango", "latitude": 42.165531, "longitude": -75.889893, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2410,9 +3127,12 @@ "description": "The stop is located on a sign post about 15 feet before Gabor Rd near the Can Man Town of Chenango", "latitude": 42.167397, "longitude": -75.888313, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2421,9 +3141,12 @@ "description": "The stop is located on a sign post at the corner before Matthews St across from the Price Chopper Town of Chenango", "latitude": 42.168331, "longitude": -75.885498, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2432,9 +3155,12 @@ "description": "The stop is located on a sign post about 50 feet after the entrance to the Chenango Animal Hospital Town of Chenango", "latitude": 42.168758, "longitude": -75.878632, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -2443,9 +3169,12 @@ "description": "The stop is located on a sign post near the corner after Dewey Ave.", "latitude": 42.0979658696223, "longitude": -75.8761987002915, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2454,9 +3183,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 2 Dock A", "latitude": 42.101243, "longitude": -75.910888, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2465,9 +3197,12 @@ "description": "The stop is located on a sign post about 200 feet after Saratoga Ave Binghamton. There is a bus shelter here.", "latitude": 42.098293, "longitude": -75.879593, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2476,10 +3211,14 @@ "description": "The stop is located about 100 feet before Jay St in front of AVRE Binghamton. There is a bus shelter here.", "latitude": 42.100044, "longitude": -75.906174, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "51) K Commuter" + ], + "route_ids": [ + "BCT_12", + "BCT_51" ] }, { @@ -2488,9 +3227,12 @@ "description": "The stop is located on a building by the parking lot before the bus turns on Afton St Binghamton", "latitude": 42.099073, "longitude": -75.878915, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2499,10 +3241,14 @@ "description": "The stop is located on a sign post about 200 feet after Fayette St in front of the former Sheltered Workshop Binghamton.", "latitude": 42.100536, "longitude": -75.904472, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "51) K Commuter" + ], + "route_ids": [ + "BCT_12", + "BCT_51" ] }, { @@ -2511,9 +3257,12 @@ "description": "The stop is located on a sign post at the corner before Conklin Ave at a private residence Binghamton", "latitude": 42.09996, "longitude": -75.878662, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2522,10 +3271,14 @@ "description": "The stop is located on a sign post about 50 feet before Rutherford St across from the Xtra Mart Binghamton", "latitude": 42.10099, "longitude": -75.902763, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "51) K Commuter" + ], + "route_ids": [ + "BCT_12", + "BCT_51" ] }, { @@ -2534,10 +3287,14 @@ "description": "The stop is located on a sign post at the corner before Bond St at a private residence Binghamton", "latitude": 42.09959, "longitude": -75.880745, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2546,9 +3303,12 @@ "description": "The stop is located on a sign post about 50 feet after Webster St at a private residence Binghamton", "latitude": 42.099113, "longitude": -75.895767, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2557,10 +3317,14 @@ "description": "The stop is located on a sign post about 10 feet before Bond St at a private residence Binghamton", "latitude": 42.09874, "longitude": -75.883522, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2569,9 +3333,12 @@ "description": "The stop is located on a sign post about 20 feet before Jackson St at a private residence Binghamton", "latitude": 42.098038, "longitude": -75.895241, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2580,10 +3347,14 @@ "description": "The stop is located on a sign post about 200 feet after Beford St at a private residence Binghamton.", "latitude": 42.09774, "longitude": -75.886139, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2592,9 +3363,12 @@ "description": "The stop is located on a sign post about 25 before Belden St at a private residence Binghamton", "latitude": 42.096844, "longitude": -75.894676, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2603,10 +3377,14 @@ "description": "The stop is located on a sign post about 100 feet before Burr Ave by Weis Binghamton.", "latitude": 42.096954, "longitude": -75.88781, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2615,10 +3393,14 @@ "description": "The stop is located on a sign post about 200 feet after Tompkins St in front of the Hess Express Binghamton", "latitude": 42.095207, "longitude": -75.893242, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2627,10 +3409,14 @@ "description": "The stop is located on a sign post about 10 feet before Baldwin St by the Conklin Ave Baptist Church Binghamton", "latitude": 42.095816, "longitude": -75.890706, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2639,10 +3425,14 @@ "description": "The stop is located on a telephone at the crosswalk before Hayes Ave ner the Franklin Elementary School Binghamton", "latitude": 42.095596, "longitude": -75.891273, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2651,10 +3441,14 @@ "description": "The stop is located on a sign post about 50 feet before Tompkins St across from the Hess Express Binghamton", "latitude": 42.095318, "longitude": -75.893372, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2663,10 +3457,14 @@ "description": "The stop is located on a sign post at the corner before Burr Ave across from the Weis Binghamton", "latitude": 42.096527, "longitude": -75.888336, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2675,9 +3473,12 @@ "description": "The stop is located on a sign post at the corner before Belden St at a private residence Binghamton", "latitude": 42.096611, "longitude": -75.894409, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2686,10 +3487,14 @@ "description": "The stop is located on a sign post about 50 feet before Proctor St at a private residence Binghamton", "latitude": 42.09737, "longitude": -75.886696, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2698,9 +3503,12 @@ "description": "The stop is located on a sign post at the corner before Jackson St at a private residence Binghamton", "latitude": 42.097832, "longitude": -75.894989, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2709,10 +3517,14 @@ "description": "The stop is located on a sign post before Bedford St near the Savage Funeral Home Binghamton", "latitude": 42.09787, "longitude": -75.885567, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2721,9 +3533,12 @@ "description": "The stop is located on a sign post about 75 feet before Webster St near Webster Court Apartments Binghamton", "latitude": 42.099129, "longitude": -75.895592, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2732,10 +3547,14 @@ "description": "The stop is located on a sign post in front of Future Faces Childcare Binghamton", "latitude": 42.098621, "longitude": -75.883377, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2744,9 +3563,12 @@ "description": "The stop is located on a sign post about 20 feet before Liberity St ner the NYSEG Operations Center Binghamton", "latitude": 42.102207, "longitude": -75.898811, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2755,10 +3577,14 @@ "description": "The stop is located on a sign post after Duke St at a private residence Binghamton", "latitude": 42.099506, "longitude": -75.880646, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av", "53) Corporate Park" + ], + "route_ids": [ + "BCT_12", + "BCT_53" ] }, { @@ -2767,9 +3593,12 @@ "description": "The stop is located on a sign post about 20 feet after Chapman St near the Xtra Mart Binghamton", "latitude": 42.10133, "longitude": -75.901985, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2778,9 +3607,12 @@ "description": "The stop is located on a telephone pole about 200 feet after Conklin Ave at a private residence Binghamton", "latitude": 42.0996753608716, "longitude": -75.8787447212684, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2789,9 +3621,12 @@ "description": "The stop is located on a sign post about 50 feet after Stuyvesant St near the former Sheltered Workship Binghamton. There is a bus shelter here.", "latitude": 42.100739, "longitude": -75.904099, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2800,9 +3635,12 @@ "description": "The stop is located on a sign post across from Jay St near the Broome County Library Binghamton. There is a bus shelter here.", "latitude": 42.100163, "longitude": -75.90625, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "12) Conkin Av" + ], + "route_ids": [ + "BCT_12" ] }, { @@ -2811,9 +3649,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 9 Dock B", "latitude": 42.101361, "longitude": -75.910729, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2822,11 +3663,16 @@ "description": "The stop is located on a sign post about 200 feet before NY 434 E across from Portobello Square in Vestal", "latitude": 42.095377, "longitude": -75.975336, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City", "48) Shoppers Express Oakdale Mall" + ], + "route_ids": [ + "BCT_15", + "BCT_17", + "BCT_48" ] }, { @@ -2835,9 +3681,12 @@ "description": "The stop is located on a sign post across from Washington St near the Subway Restaurant Binghamton", "latitude": 42.098804, "longitude": -75.914177, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2846,10 +3695,14 @@ "description": "The stop is located on a telephone pole about 75 feet after the Vestal Pkwy near Quality Inn in Vestal.", "latitude": 42.096214, "longitude": -75.975395, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2858,10 +3711,14 @@ "description": "The stop is located on a sign post across from Old Lane by the Lourdes Hospice in Vestal.", "latitude": 42.097569, "longitude": -75.972839, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2870,10 +3727,14 @@ "description": "The stop is located on a sign post at the corner before New York Ave private residence in Johnson City", "latitude": 42.107048, "longitude": -75.963127, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2882,9 +3743,12 @@ "description": "The stop is located on a sign post about 125 feet after Main St across from the Binghamton High School Binghamton", "latitude": 42.098854, "longitude": -75.919983, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2893,10 +3757,14 @@ "description": "The stop is located on a sign post at the corner before Ackley Ave by the Primitive Methodist Church Johnson City", "latitude": 42.107361, "longitude": -75.960472, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2905,9 +3773,12 @@ "description": "The stop is located on a sign post at the corner before Seminary Ave at a private residence Binghamton", "latitude": 42.097073, "longitude": -75.920593, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2916,10 +3787,14 @@ "description": "The stop is located on a sign post at the corner before Baldwin St near Floral Ave Park in Johnson City", "latitude": 42.107734, "longitude": -75.957531, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2928,9 +3803,12 @@ "description": "The stop is located on a sign post at the corner before Leroy St at a private residence Binghamton", "latitude": 42.09549, "longitude": -75.921135, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2939,10 +3817,14 @@ "description": "The stop is located across from Willow St on Floral Ave", "latitude": 42.108111, "longitude": -75.954333, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2951,9 +3833,12 @@ "description": "The stop is located on a sign post about 50 feet after Murray St at a private residence Binghamton", "latitude": 42.09557, "longitude": -75.922737, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2962,10 +3847,14 @@ "description": "The stop is located on a sign post at the corner before Burbank Ave near the Floral Park Cemetary in Johnson City", "latitude": 42.108456, "longitude": -75.952415, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -2974,9 +3863,12 @@ "description": "The stop is located on a sign post at the corner before Chestnut St near the Leroy Package St Binghamton", "latitude": 42.0957976933858, "longitude": -75.926618689716, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2985,9 +3877,12 @@ "description": "The stop is located on a sign post about 75 feet after Burbank Ave at private residence Binghamton", "latitude": 42.105614, "longitude": -75.951874, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -2996,9 +3891,12 @@ "description": "The stop is located on a sign post at the corner before Millard Ave at a private residence Binghamton", "latitude": 42.095661, "longitude": -75.928993, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3007,9 +3905,12 @@ "description": "The stop is located on a sign post at the corner before Cleveland Ave at private residence Binghamton", "latitude": 42.105721, "longitude": -75.948463, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3018,9 +3919,12 @@ "description": "The stop is located on a sign post about 50 feet before Laurel Ave at a private residence Binghamton", "latitude": 42.095589, "longitude": -75.930511, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3029,9 +3933,12 @@ "description": "The stop is located on a sign post at the corner before West End Ave at private residence Binghamton", "latitude": 42.105862, "longitude": -75.946358, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3040,9 +3947,12 @@ "description": "The stop is located on a sign post about 20 feet before Beethoven St at a private residence Binghamton", "latitude": 42.095399, "longitude": -75.934396, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3051,9 +3961,12 @@ "description": "The stop is located on a sign post at the corner before Matthews St at private residence Binghamton", "latitude": 42.106251, "longitude": -75.943359, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3062,9 +3975,12 @@ "description": "The stop is located on a sign post about 100 feet Seminary Ave by the Recreation Park Tennis Courts Binghamton", "latitude": 42.097908, "longitude": -75.934868, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3073,9 +3989,12 @@ "description": "The stop is located on a sign post at the corner before Crestmont Rd at private residence Binghamton", "latitude": 42.105782, "longitude": -75.941879, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3084,9 +4003,12 @@ "description": "The stop is located on a sign post after Jefferson Ave near recreation Park Binghamton", "latitude": 42.099689, "longitude": -75.935089, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3095,9 +4017,12 @@ "description": "The stop is located on a telephone pole about 200 feet after Schubert St near Thomas Jefferson Elementary School Binghamton", "latitude": 42.104858, "longitude": -75.940918, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3106,9 +4031,12 @@ "description": "The stop is located on a sign post about 50 feet after Beethoven St at a private residence Binghamton", "latitude": 42.100517, "longitude": -75.935555, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3117,9 +4045,12 @@ "description": "The stop is located on a sign post at the corner before Jerome Ave at a private residence Binghamton", "latitude": 42.103542, "longitude": -75.941002, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3128,9 +4059,12 @@ "description": "The stop is located on a sign post across from Kneeland Ave near West Middle School Binghamton", "latitude": 42.100384, "longitude": -75.937584, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3139,9 +4073,12 @@ "description": "The stop is located on a sign post at the corner across from Druid Pl at a private residence Binghamton", "latitude": 42.101852, "longitude": -75.940697, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3150,9 +4087,12 @@ "description": "The stop is located on a sign post at the corner before Helen St at a private residence Binghamton", "latitude": 42.100197, "longitude": -75.940262, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3161,9 +4101,12 @@ "description": "The stop is located on a sign post before Highland Ave at a private residence Binghamton", "latitude": 42.1002358070277, "longitude": -75.940451038667, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3172,9 +4115,12 @@ "description": "The stop is located on a telephone pole at the corner before Druid Pl Binghamton", "latitude": 42.102089, "longitude": -75.940536, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3183,9 +4129,12 @@ "description": "The stop is located on a telephone pole across from Aquinas St near West Middle School Binghamton", "latitude": 42.100244160147, "longitude": -75.9383878392061, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3194,9 +4143,12 @@ "description": "The stop is located on a sign post at the corner before Jerome Ave at a private residence Binghamton", "latitude": 42.10339, "longitude": -75.940697, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3205,9 +4157,12 @@ "description": "The stop is located on a sign post at the corner before Beethoven St at a private residence Binghamton", "latitude": 42.100452, "longitude": -75.93541, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3216,9 +4171,12 @@ "description": "The stop is located on a sign post at the corner before Schubert St near Thomas Jefferson Elementary School", "latitude": 42.104527, "longitude": -75.93972, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3227,9 +4185,12 @@ "description": "The stop is located on a sign post at the corner before Jefferson Ave at a private residence Binghamton", "latitude": 42.099556, "longitude": -75.935188, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3238,9 +4199,12 @@ "description": "The stop is located on a sign post at the corner before Crestmont Rd at a private residence Binghamton", "latitude": 42.105751, "longitude": -75.941628, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3249,9 +4213,12 @@ "description": "The stop is located on a telephone pole before Seminary Ave across from Recreation Park Binghamton", "latitude": 42.097633, "longitude": -75.934959, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3260,9 +4227,12 @@ "description": "The stop is located on a sign post at the corner before Crary Ave at a private residence Binghamton", "latitude": 42.106289, "longitude": -75.943939, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3271,9 +4241,12 @@ "description": "The stop is located on a telephone pole about 50 feet before Leroy St at a private residence Binghamton", "latitude": 42.0955895353997, "longitude": -75.9347774369079, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3282,9 +4255,12 @@ "description": "The stop is located on a sign post at the corner before West End Ave at a private residence Binghamton", "latitude": 42.106159, "longitude": -75.946182, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3293,9 +4269,12 @@ "description": "The stop is on a sign post located at the corner before Laurel Ave at a private residence Binghamton", "latitude": 42.095478, "longitude": -75.930977, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3304,9 +4283,12 @@ "description": "The stop is located at on a sign post at the corner before Cleveland Ave at a private residence Binghamton", "latitude": 42.1058319064041, "longitude": -75.9483148937311, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3315,9 +4297,12 @@ "description": "The stop is located on a sign post at the corner before Milard Ave at a private residence Binghamton", "latitude": 42.095566, "longitude": -75.929222, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3326,9 +4311,12 @@ "description": "The stop is located on a sign post about 20 before Burbank by a private residence Binghamton", "latitude": 42.1057169072941, "longitude": -75.9519348219899, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3337,9 +4325,12 @@ "description": "The stop is located on a sign post at the corner before Chestnut St near Cananaugh's Deli Binghamton", "latitude": 42.0956756212701, "longitude": -75.9268391785583, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3348,9 +4339,12 @@ "description": "The stop is located on a sign post at the corner before Burbank Ave across from the Tub Laundromat Binghamton", "latitude": 42.108459, "longitude": -75.952187, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3359,9 +4353,12 @@ "description": "The stop is located on a sign post at the corner before Chapin St at a private residence Binghamton", "latitude": 42.095589, "longitude": -75.923882, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3370,11 +4367,16 @@ "description": "The stop is located on a sign post about 30 feet before Willow St at a private residence Johnson City", "latitude": 42.108303, "longitude": -75.953964, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_16", + "BCT_17" ] }, { @@ -3383,9 +4385,12 @@ "description": "The stop is located on a sign post about 20 feet before Oak St near St Patrick's Church Binghamton", "latitude": 42.095383, "longitude": -75.921364, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3394,11 +4399,16 @@ "description": "The stop is located on a sign post at the corner before Roberts St at a private residence Johnson City.", "latitude": 42.108044, "longitude": -75.956047, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_16", + "BCT_17" ] }, { @@ -3407,9 +4417,12 @@ "description": "The stop is located at the corner before Front St across from the M&T Bank Binghamton", "latitude": 42.094913, "longitude": -75.918999, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3418,11 +4431,16 @@ "description": "The stop is located on a sign post about 10 feet before Harrison St across from Floral Park Johnson City.", "latitude": 42.107761, "longitude": -75.958168, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_16", + "BCT_17" ] }, { @@ -3431,9 +4449,12 @@ "description": "The stop is located on a sign post at the corner before Stuart St near the Veterans Memorial Arena", "latitude": 42.096001, "longitude": -75.913933, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3442,11 +4463,16 @@ "description": "The stop is located on a telephone pole about 100 feet before Saint Charles St near Adrianno's Pizza Johnson City", "latitude": 42.107513, "longitude": -75.96006, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_16", + "BCT_17" ] }, { @@ -3455,9 +4481,12 @@ "description": "The stop is located at the corner before Court St near the CVS Parking Lot Binghamton", "latitude": 42.098282, "longitude": -75.914603, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -3466,11 +4495,16 @@ "description": "The stop is located on a sign post at the corner before Cook St at a private residence Johnson City.", "latitude": 42.107136, "longitude": -75.963387, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_16", + "BCT_17" ] }, { @@ -3479,10 +4513,14 @@ "description": "The stop is located on telephone pole about 150 feet after Old Lane Rd near the Karni Griffin Spa Vestal", "latitude": 42.09771, "longitude": -75.972923, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -3491,10 +4529,14 @@ "description": "The stop is located an telephone pole about 100 feet before NY 434W near Monroe Muffler Vestal", "latitude": 42.096249, "longitude": -75.975563, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City" + ], + "route_ids": [ + "BCT_15", + "BCT_17" ] }, { @@ -3503,12 +4545,18 @@ "description": "The stop is located on a sign post after NY 434 E between Denny's and Portobello Square Vestal", "latitude": 42.095005, "longitude": -75.975471, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City", "47) Vestal", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_15", + "BCT_17", + "BCT_47", + "BCT_57" ] }, { @@ -3517,9 +4565,12 @@ "description": "The stop is located after Lester Ave at a private residence in Johnson City", "latitude": 42.1187481145106, "longitude": -75.9508280976093, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3528,9 +4579,12 @@ "description": "The stop is located on a sign post about 20 feet after Cleveland Ave near an apartment complex Binghamton", "latitude": 42.109025, "longitude": -75.948562, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3539,9 +4593,12 @@ "description": "The stop is located before Concord St at a private residence in Johnson City", "latitude": 42.118759, "longitude": -75.952981, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3550,9 +4607,12 @@ "description": "The stop is located on a sign post at the corner before West End Ave near the Kwik Fill Binghamton", "latitude": 42.109641, "longitude": -75.946807, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3561,9 +4621,12 @@ "description": "The stop is located after Diment St near the Johnson City Senior Center in Johnson City", "latitude": 42.118485, "longitude": -75.95537, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3572,9 +4635,12 @@ "description": "The stop is located on a sign post about 25 feet before Main St across from the Presbyterian Church Binghamton", "latitude": 42.111041, "longitude": -75.945124, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3583,9 +4649,12 @@ "description": "The stop is located before N Arch St at a private residence in Johnson City", "latitude": 42.116358, "longitude": -75.957216, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3594,9 +4663,12 @@ "description": "The stop is located before Diment St across from the Johnson City Senior Center in Johnson City", "latitude": 42.1183879259153, "longitude": -75.9554438760598, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3605,9 +4677,12 @@ "description": "The stop is located before Lester Ave at a private residence in Johnson City", "latitude": 42.1186558966307, "longitude": -75.9507819569759, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3616,10 +4691,14 @@ "description": "The stop is located on a telephone pole about 150 after Main St near the Johnson City Presbyterian Church Binghamton", "latitude": 42.110809, "longitude": -75.945422, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_16", + "BCT_17" ] }, { @@ -3628,9 +4707,12 @@ "description": "The stop is located at the corner before Gannett Dr near the Visions Credit Union Johnson City", "latitude": 42.116631, "longitude": -75.949006, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3639,10 +4721,14 @@ "description": "The stop is located on a telephone pole after West End Ave across from Kwik Fill Binghamton", "latitude": 42.109694, "longitude": -75.946927, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_16", + "BCT_17" ] }, { @@ -3651,10 +4737,14 @@ "description": "The stop is located on a telephone across from Cleveland Ave near an apartment complex Binghamton", "latitude": 42.109098, "longitude": -75.948751, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_16", + "BCT_17" ] }, { @@ -3663,10 +4753,14 @@ "description": "The stop is located at the corner before Burbank Ave near the Washtub Laundromat Johnson City", "latitude": 42.108622, "longitude": -75.952084, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_16", + "BCT_17" ] }, { @@ -3675,9 +4769,12 @@ "description": "The stop is located in front of the Johnson City High School", "latitude": 42.134555, "longitude": -75.969306, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3686,9 +4783,12 @@ "description": "The stop is located in front of the Johnson City Middle School", "latitude": 42.135848, "longitude": -75.962225, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City" + ], + "route_ids": [ + "BCT_17" ] }, { @@ -3697,9 +4797,12 @@ "description": "The stop is located on a sign post at the corner after Banks Ave at a private residence Johnson City", "latitude": 42.10492, "longitude": -75.964753, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3708,9 +4811,12 @@ "description": "The stop is located on a sign post at the corner before Riale Ave at a private residence Johnson City", "latitude": 42.103599, "longitude": -75.963198, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3719,9 +4825,12 @@ "description": "The stop is located on a telephone at the corner before the entrance to Davis College Johnson City", "latitude": 42.101691, "longitude": -75.960765, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3730,9 +4839,12 @@ "description": "The stop is located on a sign post across from Susquehanna St in front of the BU Downtown Center Binghamton. A bus shelter is here.", "latitude": 42.095662, "longitude": -75.914259, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3741,9 +4853,12 @@ "description": "The stop is located on a telephone pole after the entrance to the Susquahanna Nursing Facility Johnson City", "latitude": 42.100243, "longitude": -75.958669, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3752,9 +4867,12 @@ "description": "The stop is located on a sign post 10 feet before Oak St near the Young & Young Law Office Binghamton", "latitude": 42.092733, "longitude": -75.921751, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3763,9 +4881,12 @@ "description": "The stop is located on a telephone pole across from Ackely Ave near a private residence Johnson City", "latitude": 42.099617, "longitude": -75.956833, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3774,9 +4895,12 @@ "description": "The stop is located on a telephone pole at the corner before St John Ave near the Broome Day Services Binghamton", "latitude": 42.092383, "longitude": -75.925405, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3785,9 +4909,12 @@ "description": "The stop is located on a sign post about 75 after Columbus Pl across from Hatala Orthodontics Johsnon City", "latitude": 42.099302, "longitude": -75.954616, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3796,9 +4923,12 @@ "description": "The stop is located on a telephone pole at the corner before Millard Ave at a private residence Binghamton", "latitude": 42.092247, "longitude": -75.928659, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3807,9 +4937,12 @@ "description": "The stop is located on sign about 100 feet after Burbank Ave across from Acousticon Hearing Johnson City", "latitude": 42.098758, "longitude": -75.951302, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3818,9 +4951,12 @@ "description": "The stop is located on a sign post about 20 feet before Laurel Ave at a private residence Binghamton", "latitude": 42.092196, "longitude": -75.930218, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3829,9 +4965,12 @@ "description": "The stop is located on a sign post across from Margaret St near the entrance to St Patrick's Cemetary Johnson City", "latitude": 42.09806, "longitude": -75.949248, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3840,9 +4979,12 @@ "description": "The stop is located on a sign post about 100 feet after Avon Rd in front of the Lourdes Footcare Center Binghamton", "latitude": 42.0921287006103, "longitude": -75.9321265288429, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3851,9 +4993,12 @@ "description": "The stop is located on a telephone pole about 25 feet after West End Ave at a private residence Binghamton", "latitude": 42.096538, "longitude": -75.946482, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3862,9 +5007,12 @@ "description": "The stop is located about 75 feet after Beethoven St across from Lourdes Hospital Binghamton", "latitude": 42.092569, "longitude": -75.934906, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3873,9 +5021,12 @@ "description": "The stop is located on a sign post across from Crary Ave at a private residence Binghamton", "latitude": 42.095662, "longitude": -75.944609, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3884,9 +5035,12 @@ "description": "The stop is located on a telephone pole at the corner before Helen St at a private residence Binghamton", "latitude": 42.093917, "longitude": -75.939538, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3895,9 +5049,12 @@ "description": "The stop is located on a sign post across from Matthews St at a private residence Binghamton", "latitude": 42.09484, "longitude": -75.942117, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3906,9 +5063,12 @@ "description": "The stop is located on a sign post at the corner before Crary Ave at a private residence Binghamton", "latitude": 42.095691, "longitude": -75.944352, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3917,10 +5077,14 @@ "description": "The stop is located about 100 feet before Rotary Ave in front of Lourdes Hospital Binghamton. A bus shelter is here.", "latitude": 42.092744, "longitude": -75.936293, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_15", + "BCT_57" ] }, { @@ -3929,9 +5093,12 @@ "description": "The stop is located on a telephone pole about 10 feet before West End Ave at a private residence Binghamton", "latitude": 42.096615, "longitude": -75.946357, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3940,9 +5107,12 @@ "description": "The stop is located on a sign post about 25 feet before Stratford Pl at a private residence Binghamton.", "latitude": 42.092146, "longitude": -75.93309, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3951,9 +5121,12 @@ "description": "The stop is located on sign post before Laurel Ave- Binghamton", "latitude": 42.092059, "longitude": -75.930667, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3962,9 +5135,12 @@ "description": "The stop is located on a telephone pole at the corner before Patricia St at a private residence Binghamton", "latitude": 42.097547, "longitude": -75.948047, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3973,9 +5149,12 @@ "description": "The stop is located on a telephone pole at the corner before Campbell Rd at a private residence Binghamton", "latitude": 42.092152, "longitude": -75.927592, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3984,9 +5163,12 @@ "description": "The stop is located on a sign post at the corner before Margaret St near Dr Jeffrey King's Medical Office Johnson City.", "latitude": 42.098142, "longitude": -75.949203, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -3995,9 +5177,12 @@ "description": "The stop is located on on telehphone pole at the corner before Oak St near the Gottlieb Law Offices Binghamton", "latitude": 42.092576, "longitude": -75.922354, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4006,9 +5191,12 @@ "description": "The stop is located on a telephone pole about 100 feet before Burbank Ave near Acoustican Hearing Johnson City", "latitude": 42.098847, "longitude": -75.951244, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4017,9 +5205,12 @@ "description": "The stop is located on a sign post at the corner before Columbus Pl by Hatala Orthodontics Johnson City", "latitude": 42.099471, "longitude": -75.954926, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4028,9 +5219,12 @@ "description": "The stop is located on a sign post at the corner before Ackely Ave at a private residence Johnson City", "latitude": 42.099686, "longitude": -75.956565, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4039,9 +5233,12 @@ "description": "The stop is located on a sign post at the corner before Elfred St near Downton Denistry Johnson City", "latitude": 42.10056, "longitude": -75.958904, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4050,9 +5247,12 @@ "description": "The stop is located on a sign post at the corner before Ethel St at a private residence Johnson City", "latitude": 42.102239, "longitude": -75.961305, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4061,9 +5261,12 @@ "description": "The stop is located on a telephone pole at the corner before Brewster St near Apple Foods Johnson City", "latitude": 42.103299, "longitude": -75.962653, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4072,9 +5275,12 @@ "description": "The stop is located on a sign post across from Banks St at a private residence Johnson City", "latitude": 42.104993, "longitude": -75.964603, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4083,9 +5289,12 @@ "description": "The flag stop is located by the UHS Primary Care Walk in 4417 Vestal Pkwy.", "latitude": 42.096363, "longitude": -75.967042, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4094,9 +5303,12 @@ "description": "The flag stop is located by the UHS Primary Care Walk in 4417 Vestal Pkwy", "latitude": 42.096294, "longitude": -75.967182, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -4105,9 +5317,12 @@ "description": "The stop is located on a street lamp pole about 100 feet after Century Dr Binghamton", "latitude": 42.107761, "longitude": -75.866409, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4116,9 +5331,12 @@ "description": "", "latitude": 42.103911, "longitude": -75.866554, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4127,9 +5345,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 1 Dock A", "latitude": 42.100982, "longitude": -75.91097, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4138,9 +5359,12 @@ "description": "The stop is located at the exit of the GBHC Binghamton A bus shelter is here", "latitude": 42.10918, "longitude": -75.868538, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4149,9 +5373,12 @@ "description": "", "latitude": 42.104089, "longitude": -75.871814, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4160,9 +5387,12 @@ "description": "The stop is located on a sign post about 100 feet after Eldredge St near Kendrick Tattoo Binghamton", "latitude": 42.105488, "longitude": -75.906281, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4171,9 +5401,12 @@ "description": "The stop is located on sign post after and across from Garden St at a private residence Binghamton", "latitude": 42.109016, "longitude": -75.870667, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4182,9 +5415,12 @@ "description": "", "latitude": 42.104569, "longitude": -75.876332, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4193,9 +5429,12 @@ "description": "The stop is located on a sign post about 50 feet before Robinson St across from Labor Ready Binghamton", "latitude": 42.107059, "longitude": -75.904442, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4204,9 +5443,12 @@ "description": "The stop is located on a sign post across from English St at a private residence Binghamton", "latitude": 42.108871, "longitude": -75.872322, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4215,9 +5457,12 @@ "description": "", "latitude": 42.104541, "longitude": -75.880491, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4226,9 +5471,12 @@ "description": "The stop is located on a sign post at the corner before Emmett St at a private residence Binghamton", "latitude": 42.106998, "longitude": -75.901794, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4237,9 +5485,12 @@ "description": "The stop is located on a sign post after the crosswalk with Rubin Ave near the Fairview Park Ball Field Binghamton.", "latitude": 42.108715, "longitude": -75.874428, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4248,9 +5499,12 @@ "description": "", "latitude": 42.104271, "longitude": -75.889154, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4259,9 +5513,12 @@ "description": "The stop is located on a telephone pole at the corner before Wales Ave near the Rte 363 overpass Binghamton", "latitude": 42.10685, "longitude": -75.899689, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4270,9 +5527,12 @@ "description": "The stop is located before Faiview Ave near the Fairview Park Parking Lot Binghamton. A bus shelter is here.", "latitude": 42.108601, "longitude": -75.876282, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4281,9 +5541,12 @@ "description": "", "latitude": 42.105131, "longitude": -75.892181, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4292,9 +5555,12 @@ "description": "The stop is located about 50 feet before Whitney Ave before Gallagher's Pub Binghamton", "latitude": 42.107029, "longitude": -75.89653, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4303,9 +5569,12 @@ "description": "The stop is located on a sign post before Glen Ave near Calvin Coolidge School Binghamton.", "latitude": 42.108391, "longitude": -75.878632, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4314,9 +5583,12 @@ "description": "The stop is located on a telephone pole at the corner before Griswold St near East End Appliances Binghamton", "latitude": 42.107273, "longitude": -75.892563, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4325,9 +5597,12 @@ "description": "The stop is located on a sign post before Bigelow St near the Coolidge School crosswalk sign Binghamton", "latitude": 42.108212, "longitude": -75.880951, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4336,9 +5611,12 @@ "description": "The stop is located on a sign post after Ely St and before the entrance to Weis Binghamton", "latitude": 42.107445, "longitude": -75.889587, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4347,9 +5625,12 @@ "description": "The stop is located on a sign post about 75 feet after Howard Ave Binghamton", "latitude": 42.107899, "longitude": -75.884911, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4358,9 +5639,12 @@ "description": "The stop is located on a telephone pole before George St at a private residence Binghamton", "latitude": 42.109406, "longitude": -75.888847, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4369,9 +5653,12 @@ "description": "The stop is located on a sign post before the entrance with KFC about 100 feet before Broad Ave Binghamton.", "latitude": 42.107685, "longitude": -75.888023, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4380,9 +5667,12 @@ "description": "The stop is located on a sign post about 25 feet before E Fredrick St across from Stockholm Barbershop Binghamton", "latitude": 42.111259, "longitude": -75.889084, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4391,9 +5681,12 @@ "description": "The stop is located on a sign post at the corner before Ely St near the M&T Bank Binghamton", "latitude": 42.107555, "longitude": -75.88987, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4402,9 +5695,12 @@ "description": "The stop is located on a telephone pole after Grant St between the two entrances of Manley's Might Mart Binghamton", "latitude": 42.112644, "longitude": -75.889229, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4413,9 +5709,12 @@ "description": "The stop is located on a sign post about 275 feet after Griswold St- across from Alice St Binghamton", "latitude": 42.107319, "longitude": -75.893622, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4424,9 +5723,12 @@ "description": "The stop is located on a telephone pole after the I86 off ramp about 75 feet before Hill St across from Agway Binghamton", "latitude": 42.115826, "longitude": -75.88961, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4435,9 +5737,12 @@ "description": "The stop is located on a sign post at the corner before Whitney Ave just after the railroad bridge Binghamton", "latitude": 42.107151, "longitude": -75.896141, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4446,9 +5751,12 @@ "description": "The stop is located on a telephone pole after Moeller St near Carlisle Apts Community Center Binghamton", "latitude": 42.116146, "longitude": -75.887359, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4457,9 +5765,12 @@ "description": "The stop is located on a sign post at the corner before Liberty St just after the NY 363 overpass Binghamton", "latitude": 42.106979, "longitude": -75.899406, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4468,9 +5779,12 @@ "description": "The stop is located on a sign post before Flower St near Carlise Apts Bldg 17 Binghamton", "latitude": 42.1167338293255, "longitude": -75.8863747324917, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4479,9 +5793,12 @@ "description": "The stop is located on a sign post across from Emmett St at a private residence Binghamton", "latitude": 42.107063, "longitude": -75.90155, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4490,9 +5807,12 @@ "description": "The stop is located on a sign post before Leon Ave near Carlise Apts Bldg 19 Binghamton", "latitude": 42.117821, "longitude": -75.886871, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4501,10 +5821,14 @@ "description": "The stop is located on sign post after Robinson St near Wilson Dental Binghamton", "latitude": 42.107002, "longitude": -75.904816, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St", "40) Chenango St" + ], + "route_ids": [ + "BCT_28", + "BCT_40" ] }, { @@ -4513,9 +5837,12 @@ "description": "The stop is located on a telephone pole at the corner before Moeller St near Carlisle Apts Bldg 4 Binghamton", "latitude": 42.117706, "longitude": -75.888252, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4524,10 +5851,14 @@ "description": "The stop is located on a sign post about 75 feet after Eldredge St across from VAR electronics Binghamton", "latitude": 42.104912, "longitude": -75.907143, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St", "40) Chenango St" + ], + "route_ids": [ + "BCT_28", + "BCT_40" ] }, { @@ -4536,9 +5867,12 @@ "description": "The stop is located on a sign post at the corner before Bevier St near Gates Fabrication Binghamton", "latitude": 42.119286, "longitude": -75.888992, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4547,9 +5881,12 @@ "description": "The stop is located at the intersection of Bevier St and Broad st on sign for the Binghamton Alumni Stadium Binghamton", "latitude": 42.119358, "longitude": -75.889862, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4558,9 +5895,12 @@ "description": "The stop is located on a sign post across from Spellicy Blvd after the entrance to Agway Binghamton", "latitude": 42.117508, "longitude": -75.890045, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4569,9 +5909,12 @@ "description": "The stop is located on a sign post about 20 feet before E Frederick near Stockholm Barbershop Binghamton", "latitude": 42.111576, "longitude": -75.889313, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4580,9 +5923,12 @@ "description": "The stop is located on a sign post by the Mental Health Association of the Southern Tier. A bus shelter is here.", "latitude": 42.108682, "longitude": -75.88897, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4591,9 +5937,12 @@ "description": "The stop is located on a sign post about 75 feet after Moeller St between the exits of the K&P One Stop Binghamton", "latitude": 42.107727, "longitude": -75.886047, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4602,9 +5951,12 @@ "description": "The stop is located on a sign post at the corner before Mason Ave by the Cameo Theater Binghamton", "latitude": 42.107887, "longitude": -75.883545, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4613,9 +5965,12 @@ "description": "The stop is located on a sign post about 15 feet before Bigelow St near the Fairview United Methodist Church Binghamton", "latitude": 42.108063, "longitude": -75.881264, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4624,9 +5979,12 @@ "description": "The stop is located on a sign post at the corner before Milford St by the United Church of Christ Binghamton", "latitude": 42.108337, "longitude": -75.877983, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4635,9 +5993,12 @@ "description": "The stop is located on a sign post at the corner before Fairview Ave at a private residence Binghamton", "latitude": 42.108456, "longitude": -75.876572, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4646,9 +6007,12 @@ "description": "The stop is located a sign post at the corner after Rubin Ave across from Fairview Park Binghamton", "latitude": 42.108646, "longitude": -75.874321, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4657,9 +6021,12 @@ "description": "The stop is located on a sign post at the corner before English St at a private residence Binghamton", "latitude": 42.108757, "longitude": -75.872551, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4668,9 +6035,12 @@ "description": "The stop is located on a telephone pole at the corner before Garden St at a private residence Binghamton", "latitude": 42.108936, "longitude": -75.870483, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4679,9 +6049,12 @@ "description": "The stop is located on a telephone pole at the entrance to the GBHC Center Binghamton", "latitude": 42.109081, "longitude": -75.868675, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4690,9 +6063,12 @@ "description": "The stop is located on the corner before Century Dr near the GBHC Center Binghamton", "latitude": 42.1074402919586, "longitude": -75.8664112406001, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4701,9 +6077,12 @@ "description": "The stop is located in front of the VA Clinic near the Garvin Bldg GBHC Binghamton", "latitude": 42.1057264285454, "longitude": -75.8676189498667, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "28) Robinson St" + ], + "route_ids": [ + "BCT_28" ] }, { @@ -4712,9 +6091,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 12 Dock B", "latitude": 42.100995, "longitude": -75.910829, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4723,10 +6105,14 @@ "description": "The stop is located on a street lamp pole near the the NYS Department of Labor Endicott.", "latitude": 42.094946, "longitude": -76.090671, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -4735,12 +6121,18 @@ "description": "The stop is located on a sign post about 100 feet after Water St in front of Boscov's Binghamton", "latitude": 42.098837, "longitude": -75.915429, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "8) Front St", "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_7", + "BCT_8", + "BCT_16", + "BCT_35" ] }, { @@ -4749,10 +6141,14 @@ "description": "The stop is located on a sign post near an office building at the Glendale Technology Park Endicott", "latitude": 42.093063, "longitude": -76.091274, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -4761,11 +6157,16 @@ "description": "The stop is located on a sign post about 125 feet after Front St by the 1st Congregational Church Binghamton", "latitude": 42.0989597654341, "longitude": -75.9179805846929, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_15", + "BCT_16", + "BCT_35" ] }, { @@ -4774,9 +6175,12 @@ "description": "The stop is located on a sign post near the crosswalk at the corner before Grippen Ave across from Our Lady of Good Council Church Endicott", "latitude": 42.0923446831768, "longitude": -76.0788652133883, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4785,9 +6189,12 @@ "description": "The stop is located on a sign post by the crosswalk before Bassett Ave at a private residence Endicott", "latitude": 42.092734, "longitude": -76.075082, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4796,10 +6203,14 @@ "description": "The is located on a sign post about 130 feet before Chapin St by the CVS Binghamton. A bus shelter is here.", "latitude": 42.09967, "longitude": -75.921773, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4808,9 +6219,12 @@ "description": "The stop is located across from S Page Ave Endicott. There is a bus shelter here.", "latitude": 42.09362, "longitude": -76.072195, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4819,10 +6233,14 @@ "description": "The stop is located on a telephone pole about 125 feet after Mather St by the Westside Mini-Mart Binghamton", "latitude": 42.100603, "longitude": -75.925196, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4831,9 +6249,12 @@ "description": "The is stop is located at the corner before DeHart Ave. There is a bus shelter here.", "latitude": 42.094661, "longitude": -76.068783, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4842,10 +6263,14 @@ "description": "The stop is located on a sign post at the corner before Crandall St by the Horizon's Credit Union Binghamton.", "latitude": 42.101586, "longitude": -75.927139, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4854,9 +6279,12 @@ "description": "The stop is located on a sign post about 75 feet after Badger Ave near Babcock Endicott", "latitude": 42.095069, "longitude": -76.065575, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4865,10 +6293,14 @@ "description": "The stop is located on a sign post across from Cedar St by AudioMan Binghamton", "latitude": 42.102408, "longitude": -75.928632, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4877,9 +6309,12 @@ "description": "The stop is located about 50 feet before Liberty St near the Rite Aid Endicott. There is a bus shelter here.", "latitude": 42.094997, "longitude": -76.064222, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4888,10 +6323,14 @@ "description": "The stop is located on a sign post about 175 feet after Jarvis St near Wendy's Binghamton", "latitude": 42.1032666713242, "longitude": -75.9301361055766, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4900,9 +6339,12 @@ "description": "The is stop is located at the corner before Mersereau St near the Village West Apts. There is a bus shelter here.", "latitude": 42.094867, "longitude": -76.060771, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4911,10 +6353,14 @@ "description": "The stop is located on a telephone pole about 185 feet after Hamilton St before the AutoZone Binghamton", "latitude": 42.105134, "longitude": -75.933501, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4923,9 +6369,12 @@ "description": "The stop is located on a telephone pole about 75 feet after Vestal Ave across from the Hess Express Endicott", "latitude": 42.095098, "longitude": -76.056391, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4934,10 +6383,14 @@ "description": "The stop is located on a sign post across from Orton Ave in front of Catholic Charities Binghamton. A bus shelter is here.", "latitude": 42.106294, "longitude": -75.93563, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4946,9 +6399,12 @@ "description": "The stop is located on a telephone pole at the corner before Booth Ave by the BCT Credit Union Endicott", "latitude": 42.096599, "longitude": -76.052508, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4957,10 +6413,14 @@ "description": "The stop is located on a sign post about 135 feet after Glenwood Ave across from CVS Binghamton", "latitude": 42.1074222535089, "longitude": -75.9376825496985, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4969,9 +6429,12 @@ "description": "The stop is located on a telephone pole about 15 feet before Lincoln Ave near the Union-Endicott Board of Education Endicott", "latitude": 42.097054, "longitude": -76.05146, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -4980,10 +6443,14 @@ "description": "The stop is located on a sign post across from Crestmont Rd in front of Burger King Binghamton", "latitude": 42.108985, "longitude": -75.940537, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -4992,10 +6459,14 @@ "description": "The stop is located on a sign post about 50 feet after Main St in front of Wendy's Endicott", "latitude": 42.099258, "longitude": -76.047812, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5004,10 +6475,14 @@ "description": "The stop is located on a sign post at the crosswalk across from Crary Ave near Cole Muffler Binghamton", "latitude": 42.10997, "longitude": -75.942308, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_16", + "BCT_35" ] }, { @@ -5016,10 +6491,14 @@ "description": "The stop is located at the corner before Broad St near St Ambrose Church across from the Post Office Endicott", "latitude": 42.10051, "longitude": -76.047927, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5028,9 +6507,12 @@ "description": "The stop is located on a sign post after Floral Ave near the Johnson City Arch Johnson City", "latitude": 42.111462, "longitude": -75.945476, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5039,9 +6521,12 @@ "description": "The stop is located on a utility pole about 150 feet after Garfield Ave Endicott", "latitude": 42.104999, "longitude": -76.046616, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5050,10 +6535,14 @@ "description": "The stop is located on a street lamp pole about 160 feet before Lester Ave by Your Home Library Johnson City", "latitude": 42.11302, "longitude": -75.949482, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_17", + "BCT_35" ] }, { @@ -5062,9 +6551,12 @@ "description": "The stop is located across from Gault Toyota Endicott", "latitude": 42.106552, "longitude": -76.038232, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5073,9 +6565,12 @@ "description": "The stop is located near the Endwell Plaza", "latitude": 42.106596, "longitude": -76.029734, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5084,10 +6579,14 @@ "description": "The stop is located on a sign post at the corner before Avenue C by Blue Wireless Johnson City", "latitude": 42.114861, "longitude": -75.954252, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_17", + "BCT_35" ] }, { @@ -5096,9 +6595,12 @@ "description": "The stop is located about 125 feet after Jackson Ave Endicott", "latitude": 42.10245, "longitude": -76.039234, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5107,10 +6609,14 @@ "description": "The stop is located on a sign post about 100 feet after Broad St in front The Gold Mine Johnson City", "latitude": 42.115636, "longitude": -75.956308, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_17", + "BCT_35" ] }, { @@ -5119,9 +6625,12 @@ "description": "The stop is located on a telephone pole before Maryland Ave across from the Laser Car Wash Endicott", "latitude": 42.103448, "longitude": -76.03633, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5130,9 +6639,12 @@ "description": "The stop is located on a telephone pole between the Post Office and Walgreens Johnson City", "latitude": 42.115885, "longitude": -75.959663, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5141,9 +6653,12 @@ "description": "The stop is located on a sign post at the corner before Louisiana Ave across from Tony's Grill Endicott", "latitude": 42.103821, "longitude": -76.035182, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5152,9 +6667,12 @@ "description": "The stop is located on a telephone pole across from Allen St by the Southern Tier Spine and Medical Johnson City", "latitude": 42.115787, "longitude": -75.963471, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5163,9 +6681,12 @@ "description": "The stop is located on a sign post at the corner before Frances Ave across from AutoZone Endicott", "latitude": 42.105106, "longitude": -76.031391, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5174,9 +6695,12 @@ "description": "The stop is located on a telephone pole about 100 feet after Marion Ave across from Little Caeser's Pizza Endwell", "latitude": 42.105749, "longitude": -76.029479, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5185,9 +6709,12 @@ "description": "The stop is located on a sign post about 100 feet after 3rd St by UHS Primary Care Johnson City", "latitude": 42.115745, "longitude": -75.966756, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5196,9 +6723,12 @@ "description": "The stop is located on a sign post at the corner before Chaumont Dr by KFC Endwell", "latitude": 42.106235, "longitude": -76.026721, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5207,9 +6737,12 @@ "description": "The stop is located on a sign post by Aldi's Johnson City", "latitude": 42.115584, "longitude": -75.972733, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5218,9 +6751,12 @@ "description": "The stop is located on a sign post about 20 feet before Shady Dr near R&M Engine Repair Endwell", "latitude": 42.106425, "longitude": -76.023719, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5229,9 +6765,12 @@ "description": "The stop is located on a telephone pole about 200 feet after Davis Ave by Burger King Endwell", "latitude": 42.106541, "longitude": -76.020509, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5240,9 +6779,12 @@ "description": "The stop is located on a sign post at the corner before Oakdale Rd by the The Pharmacy Johnson City.", "latitude": 42.116169, "longitude": -75.976316, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5251,9 +6793,12 @@ "description": "The stop is located by the Window Broker", "latitude": 42.116845, "longitude": -75.977944, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5262,9 +6807,12 @@ "description": "The stop is located on a sign post about 20 feet Prospect St at a private residence Endwell", "latitude": 42.109913, "longitude": -76.017367, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5273,9 +6821,12 @@ "description": "The stop is located on a telephone pole at the corner before Endwell St near Murray Appraisel Johnson City", "latitude": 42.117505, "longitude": -75.9769, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5284,9 +6835,12 @@ "description": "The stop is located on a sign post at the corner before Azon Rd near Klemmt Orthopaedic Johnson City", "latitude": 42.1194952707882, "longitude": -75.9770475150909, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5295,9 +6849,12 @@ "description": "The stop is located at the intersection before Hill Ave Endicott", "latitude": 42.109238, "longitude": -76.048168, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5306,9 +6863,12 @@ "description": "The stop is located on a sign post about 20 feet after Field St across from Vingelis Lee Denistry Johnson City", "latitude": 42.1209828112102, "longitude": -75.9771803365278, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5317,9 +6877,12 @@ "description": "The stop is located on a telephone pole about 25 feet after N Adams Ave at a private residence Endicott", "latitude": 42.109407, "longitude": -76.042418, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5328,9 +6891,12 @@ "description": "The stop is located about on a sign post 50 feet after Evert St across from Croteau's Transmission Johnson City", "latitude": 42.122662, "longitude": -75.977347, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5339,9 +6905,12 @@ "description": "The stop is located at the corner before Hayes Av on yellow crosswalk sign Endicott.", "latitude": 42.1095, "longitude": -76.039965, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5350,9 +6919,12 @@ "description": "The stop is located about on a sign post 150 feet before Harry L Drive between Hand Therapy and Hussar Insurance Johnson City", "latitude": 42.123657, "longitude": -75.977414, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5361,9 +6933,12 @@ "description": "The stop is located on a telephone pole about 100 feet after Taylor Ave at a private residence Endicott", "latitude": 42.1096, "longitude": -76.037248, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5372,13 +6947,20 @@ "description": "The stop is located by JC Penney", "latitude": 42.127732, "longitude": -75.975144, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City", "35) Endicott-Binghamton", "48) Shoppers Express Oakdale Mall", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_7", + "BCT_17", + "BCT_35", + "BCT_48", + "BCT_57" ] }, { @@ -5387,13 +6969,20 @@ "description": "This stop is located on the buidling on the northwest side of the Oakdale Mall", "latitude": 42.129811, "longitude": -75.974687, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City", "35) Endicott-Binghamton", "48) Shoppers Express Oakdale Mall", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_7", + "BCT_17", + "BCT_35", + "BCT_48", + "BCT_57" ] }, { @@ -5402,13 +6991,20 @@ "description": "The stop is located by Dave and Buster's", "latitude": 42.129443, "longitude": -75.97358, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "7) Clinton St", "17) Johnson City", "35) Endicott-Binghamton", "48) Shoppers Express Oakdale Mall", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_7", + "BCT_17", + "BCT_35", + "BCT_48", + "BCT_57" ] }, { @@ -5417,9 +7013,12 @@ "description": "The stop is located across from Wilson Ave on a telephone pole by Baked Euphoria Endwell", "latitude": 42.109659, "longitude": -76.03579, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5428,9 +7027,12 @@ "description": "The stop is located on a sign post about 250 feet after Oakdale Rd in front of the Valero Might Mart Johnson City.", "latitude": 42.123795, "longitude": -75.978004, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5439,9 +7041,12 @@ "description": "The stop is located at the corner before Seward Ave on a sign post near the theWatson Blvd Apts Endwell", "latitude": 42.110214, "longitude": -76.03142, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5450,9 +7055,12 @@ "description": "The stop is located on a telephone pole about 250 feet before Valley Plaza Dr across from Calvary Church Johnson City", "latitude": 42.12177, "longitude": -75.980281, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5461,9 +7069,12 @@ "description": "The stop is located about 100 feet afterWatson Blvd on a sign post at a private residence Endwell", "latitude": 42.110814, "longitude": -76.029621, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5472,9 +7083,12 @@ "description": "The stop is located on a sign post by the Traditions at the Glen Parking Lot across from Gates Doors and Blind Tiger Pub Johnson City", "latitude": 42.120134, "longitude": -75.985653, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5483,9 +7097,12 @@ "description": "The stop is located at the corner before King St on a sign post at a private residence Endwell", "latitude": 42.113452, "longitude": -76.029838, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5494,9 +7111,12 @@ "description": "The stop is located on a sign post before the entrance to the Traditions at the Glen Johnson City", "latitude": 42.120341, "longitude": -75.987836, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5505,9 +7125,12 @@ "description": "The stop is located on a telephone pole before Country Club Rd at a private residence Endwell", "latitude": 42.11553, "longitude": -76.031919, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5516,9 +7139,12 @@ "description": "The stop is located on a sign post at the corner before Poplar St across from Friedman Electric Binghamton", "latitude": 42.119088, "longitude": -75.99208, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5527,10 +7153,14 @@ "description": "The stop is located on a telephone pole about 20 feet before Knightlee Ave at a private residence Endwell", "latitude": 42.115741, "longitude": -76.028314, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5539,9 +7169,12 @@ "description": "The stop is located on a sign post about 100 feet before Country Club Rd Johnson City", "latitude": 42.11596, "longitude": -75.999633, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5550,10 +7183,14 @@ "description": "The stop is located on a telephone pole at the corner before Beckwith Ave at a private residence Endwell.", "latitude": 42.115945, "longitude": -76.023425, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5562,9 +7199,12 @@ "description": "The stop is located on a sign post about 75 feet after Groveland Ave by a private residence Endwell", "latitude": 42.112237, "longitude": -76.010208, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5573,10 +7213,14 @@ "description": "The stop is located on a sign post at the corner before Norton Ave at a private residence Endwell", "latitude": 42.116054, "longitude": -76.020853, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5585,9 +7229,12 @@ "description": "The stop is located on a sign post about 10 feet before Mary St at a private residence Endwell", "latitude": 42.109847, "longitude": -76.017525, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5596,10 +7243,14 @@ "description": "The stop is located on a telephone pole at the corner before Doyleson Ave across from Dunkin Donuts Endwell", "latitude": 42.11612, "longitude": -76.019469, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5608,9 +7259,12 @@ "description": "The stop is located on a sign post about 160 feet after Brookside Ave before the exit to McDonald's Endwell", "latitude": 42.106708, "longitude": -76.020615, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5619,9 +7273,12 @@ "description": "The stop is located on a sign post across from Rath Ave by the Veterinary Medical Center.", "latitude": 42.113288, "longitude": -76.017414, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5630,9 +7287,12 @@ "description": "The stop is located on a sign post near Jay's One Stop in Endwell", "latitude": 42.106641, "longitude": -76.02201, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5641,9 +7301,12 @@ "description": "The stop is located near the Johnson City YMCA", "latitude": 42.116738, "longitude": -75.978067, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5652,9 +7315,12 @@ "description": "The stop is located on a sign post about 10 feet before S Kelly Ave near Pullano Physical Therpay Endicott", "latitude": 42.106535, "longitude": -76.024019, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5663,9 +7329,12 @@ "description": "The stop is located about 25 feet after Hooper Rd by the Welcome to Endwell sign Endwell", "latitude": 42.1109354235885, "longitude": -76.0170169002058, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5674,9 +7343,12 @@ "description": "The stop is located on a sign post about 70 feet before Chaumont Ave in front of the Town of Union Office Bldg Endicott", "latitude": 42.106408, "longitude": -76.0262, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5685,9 +7357,12 @@ "description": "The stop is located about 125 feet after S Willis Ave Endicott", "latitude": 42.106727, "longitude": -76.029839, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5696,9 +7371,12 @@ "description": "The stop is located at the corner before Gault Toyota", "latitude": 42.106635, "longitude": -76.038471, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5707,9 +7385,12 @@ "description": "The stop is located on a sign post at the corner before Valley St at a priavte residence Endwell", "latitude": 42.111675, "longitude": -76.011004, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5718,9 +7399,12 @@ "description": "The stop is located on a sign post before Marion Ave by the entrance to A-Z Vacuum near Little Caeser's Pizza Endicott", "latitude": 42.105817, "longitude": -76.029731, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5729,9 +7413,12 @@ "description": "The stop is located on a sign post across from Country Club Rd Endwell", "latitude": 42.115818, "longitude": -75.999776, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5740,9 +7427,12 @@ "description": "The stop is located on a sign post at the corner before Moore Ave near the Autozone Endicott", "latitude": 42.105082, "longitude": -76.031919, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5751,9 +7441,12 @@ "description": "The stop is located on a sign post across from Poplar St by Friedman Electric Johnson City.", "latitude": 42.1189305729996, "longitude": -75.9921724784174, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5762,9 +7455,12 @@ "description": "The stop is located on a telephone pole about 100 feet after Nebraska Ave near Tony's Grill Endicott", "latitude": 42.104142, "longitude": -76.034682, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5773,9 +7469,12 @@ "description": "The stop is located on a sign post about 200 feet before Wilkans Way before the Blind Tiger Pub Johnson City", "latitude": 42.11996, "longitude": -75.985158, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5784,9 +7483,12 @@ "description": "The stop is located on a telephone pole at the corner before Delaware Ave near the Laser Car Wash Endicott", "latitude": 42.103342, "longitude": -76.037181, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5795,9 +7497,12 @@ "description": "The stop is located on a sign post about 100 feet before Valley Plaza Dr near the Calvary Church Johnson City", "latitude": 42.121467, "longitude": -75.980405, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5806,9 +7511,12 @@ "description": "The stop is located on a sign post on the corner before Jackson Ave near Broome County Central Foods Endicott", "latitude": 42.1025, "longitude": -76.039549, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5817,9 +7525,12 @@ "description": "The stop is located about 150 feet before Oakdale Rd by Monroe Muffler Johnson City", "latitude": 42.123412, "longitude": -75.978266, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5828,9 +7539,12 @@ "description": "The stop is located on a sign post about 10 feet before Adams Ave at a private residence Endicott", "latitude": 42.10162, "longitude": -76.041716, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5839,9 +7553,12 @@ "description": "The stop is located on a sign post across from Evert St near Croteau's Transmission Johnson City", "latitude": 42.122413, "longitude": -75.977455, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5850,9 +7567,12 @@ "description": "The stop is located on a sign post at the corner before Monroe St at a private residence Endicott", "latitude": 42.102661, "longitude": -76.043161, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5861,9 +7581,12 @@ "description": "The stop is located on a sign post at the corner after Field St near the NY 17 overpass Johnson City", "latitude": 42.1206591112218, "longitude": -75.9773074994642, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5872,9 +7595,12 @@ "description": "The stop is located on a sign post about 100 feet before Hoover Ave at a private residence Endwell", "latitude": 42.111579, "longitude": -76.017258, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5883,9 +7609,12 @@ "description": "The stop is located on a sign post across from Azon Rd near the former Visions Credit Union Johnson City", "latitude": 42.119536, "longitude": -75.977218, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5894,9 +7623,12 @@ "description": "The stop is located on a sign post at the corner before Rath Ave across from Vetrinary Medical Center Endwell", "latitude": 42.113266, "longitude": -76.017213, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5905,9 +7637,12 @@ "description": "The stop is located on a sign about 40 feet after Endwell St across from Jim Murray's Appraisal Service Johnson City", "latitude": 42.117459, "longitude": -75.976999, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5916,10 +7651,14 @@ "description": "The stop is located on a telephone pole across from Doyleson Ave near Dunkin Donuts Endwell", "latitude": 42.1162802602033, "longitude": -76.0192812589433, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5928,9 +7667,12 @@ "description": "The stop is located on a sign post about 150 feet after Evelyn St across from the Westover Plaza Johnson City", "latitude": 42.115439, "longitude": -75.972761, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -5939,10 +7681,14 @@ "description": "The stop is located on a telephone pole at the corner before Patterson Ct at a private residence Endwell", "latitude": 42.116223, "longitude": -76.020461, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5951,11 +7697,16 @@ "description": "The stop is located before Baker St in front of the Johnson City Learning Center Johnson City. There is a bus shelter here.", "latitude": 42.115603, "longitude": -75.965768, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_17", + "BCT_35" ] }, { @@ -5964,10 +7715,14 @@ "description": "The stop is located on a sign post about 150 feet after Beckwith Ave near Visions Credit Union Endwell", "latitude": 42.116066, "longitude": -76.023698, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -5976,11 +7731,16 @@ "description": "The stop is located on a sign post before Allen St near the Barber Funeral Home parking lot Johnson City.", "latitude": 42.115676, "longitude": -75.962633, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_17", + "BCT_35" ] }, { @@ -5989,10 +7749,14 @@ "description": "The stop is located on a sign post across from Knigtlee Ave about 100 feet after University Ave at a private residence Endwell", "latitude": 42.115869, "longitude": -76.028094, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -6001,11 +7765,16 @@ "description": "The stop is located on a sign post about 50 before Harrison St across the street from Walgreens Johnson City", "latitude": 42.115782, "longitude": -75.95878, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_17", + "BCT_35" ] }, { @@ -6014,9 +7783,12 @@ "description": "The stop is located on a sign post about 50 feet after Country Club Rd at a private residence Endwell", "latitude": 42.1153842174282, "longitude": -76.0320830823591, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6025,9 +7797,12 @@ "description": "The stop is located on a telephone pole at the corner before King St at a private residence Endwell", "latitude": 42.1136949189848, "longitude": -76.0299702475135, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6036,11 +7811,16 @@ "description": "The stop is located before Broad St near Red Robin", "latitude": 42.115534, "longitude": -75.956379, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_17", + "BCT_35" ] }, { @@ -6049,9 +7829,12 @@ "description": "The stop is located on a sign post at the corner before Hall St at a private residence Endwell", "latitude": 42.111688, "longitude": -76.029821, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6060,11 +7843,16 @@ "description": "The stop is located by Save A Lot", "latitude": 42.114391, "longitude": -75.953395, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_17", + "BCT_35" ] }, { @@ -6073,9 +7861,12 @@ "description": "The stop is located on a sign post about 10 feet beforeWatson Blvd acoss from the Allan Court Apts Endwell", "latitude": 42.110584, "longitude": -76.029757, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6084,11 +7875,16 @@ "description": "The stop is located on a sign post before Park St and across the street from St James Church Johnson City", "latitude": 42.113305, "longitude": -75.950621, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "17) Johnson City", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_17", + "BCT_35" ] }, { @@ -6097,9 +7893,12 @@ "description": "The stop is located about across from Allan Court at a private residence Endwell", "latitude": 42.110342, "longitude": -76.031259, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6108,10 +7907,14 @@ "description": "The stop is located on a sign post before Floral Ave by the Johnson City Presbyterian Church Binghamton", "latitude": 42.111213, "longitude": -75.945244, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6120,9 +7923,12 @@ "description": "The stop is located about 10 feet before Wilson Ave across from Baked Euphora Endwell", "latitude": 42.109776, "longitude": -76.035733, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6131,10 +7937,14 @@ "description": "The stop is located on a sign post before Crary Ave and near the Lourdes Center for Family Health Binghamton", "latitude": 42.109986, "longitude": -75.942643, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6143,9 +7953,12 @@ "description": "The stop is located about 10 feet before Taylor Ave near the Village of Endicott sign in Endicott", "latitude": 42.109711, "longitude": -76.037337, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6154,10 +7967,14 @@ "description": "The stop is located on a sign post before Crestmont Rd and near the Weis Binghamton.", "latitude": 42.108281, "longitude": -75.939526, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6166,9 +7983,12 @@ "description": "The stop is located on a sign post about 20 feet after Hayes Ave near the Pucedo Funeral Home Endicott", "latitude": 42.1096393523919, "longitude": -76.0399569803756, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6177,10 +7997,14 @@ "description": "The stop is located on a sign post about 100 feet after Helen St in front of KFC Binghamton", "latitude": 42.106894, "longitude": -75.937, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6189,9 +8013,12 @@ "description": "The stop is located at the corner before N Adams Ave at a private residence Endicott", "latitude": 42.10952, "longitude": -76.042498, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6200,9 +8027,12 @@ "description": "The stop is located about 150 feet before N McKinley Endicott", "latitude": 42.109482, "longitude": -76.044293, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6211,10 +8041,14 @@ "description": "The stop is located on a sign post about 150 feet before Orton Ave between Binghamton Fluorescent and Reliable Auto Sales Binghamton", "latitude": 42.106175, "longitude": -75.935698, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6223,9 +8057,12 @@ "description": "The stop in located at the corner before Hill Ave Endicott", "latitude": 42.109351, "longitude": -76.04789, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6234,10 +8071,14 @@ "description": "The stop is located on a sign post at the corner before Schiller St near the Duncan Donuts Binghamton", "latitude": 42.105323, "longitude": -75.934251, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6246,10 +8087,14 @@ "description": "The stop is located in a street lamp pole about 200 feet after N McKinley Ave near IBM Endicott", "latitude": 42.105327, "longitude": -76.045488, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -6258,10 +8103,14 @@ "description": "The stop is located on a sign post across from Hamilton St in front of Aarons Binghamton", "latitude": 42.104748, "longitude": -75.933116, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6270,10 +8119,14 @@ "description": "The stop is located on a sign post at the corner after Cedar St near the Osburn Law Offices Binghamton", "latitude": 42.102094, "longitude": -75.928323, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6282,9 +8135,12 @@ "description": "The stop is located on a sing post about 110 feet before Chestnust St Binghamton", "latitude": 42.101518, "longitude": -75.927293, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6293,10 +8149,14 @@ "description": "The stop is located on a sign post about 150 feet after North St", "latitude": 42.104166, "longitude": -76.048433, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -6305,10 +8165,14 @@ "description": "The stop is located on a sign post after the Endicott Post Office- Endicott", "latitude": 42.099542, "longitude": -76.048023, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -6317,10 +8181,14 @@ "description": "The stop is located on a telephone pole before Arthur St by the Belmar Binghamton", "latitude": 42.100392, "longitude": -75.924992, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6329,10 +8197,14 @@ "description": "The stop is located on a sign post about 20 feet before Chapin St in front Parsons Funeral Home Binghamton", "latitude": 42.09969, "longitude": -75.9226, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6341,10 +8213,14 @@ "description": "The stop is located on a street lamp pole at the corner before Lincoln Ave across from the Union Endicott School District Offices Endicott", "latitude": 42.097394, "longitude": -76.051142, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -6353,10 +8229,14 @@ "description": "The stop is located on a sign post about 20 feet before Oak St across from Family Dollar Binghamton", "latitude": 42.099268, "longitude": -75.920241, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_8", + "BCT_35" ] }, { @@ -6365,10 +8245,14 @@ "description": "The stop is located on a sign post about 120 after Harrison Ave near the Medical Arts Bldg Endicott", "latitude": 42.096135, "longitude": -76.053955, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -6377,11 +8261,16 @@ "description": "The stop is located on a sign post about 20 feet before the Washington St near China One", "latitude": 42.0986420918152, "longitude": -75.9135929765026, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "35) Endicott-Binghamton", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_8", + "BCT_35", + "BCT_57" ] }, { @@ -6390,9 +8279,12 @@ "description": "The stop is located on a street lamp pole about 75 feet before Vestal Ave before the entrance to Hess Express Endicott.", "latitude": 42.095277, "longitude": -76.056381, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6401,9 +8293,12 @@ "description": "The stop is located on a sign post across from Merserau Ave near the Graydon Apts Endicott", "latitude": 42.094979, "longitude": -76.060676, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6412,9 +8307,12 @@ "description": "The stop is located on a sign post about 10 feet after Liberty St across from the Rite Aid Endicott", "latitude": 42.095124, "longitude": -76.064073, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6423,9 +8321,12 @@ "description": "The stop is located on a sign post about 20 feet before S Duane Ave near DeMarco's Auto Service Endicott", "latitude": 42.09497, "longitude": -76.068116, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6434,9 +8335,12 @@ "description": "The stop is located on a sign post about 90 feet before S Page Ave by the Sunoco Fuel Station Endicott", "latitude": 42.093973, "longitude": -76.071532, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6445,9 +8349,12 @@ "description": "The stop is located on a sign post by the crosswalk across from Bassett Ave Endicott", "latitude": 42.092912, "longitude": -76.074939, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6456,9 +8363,12 @@ "description": "The stop is located on a sign post about 100 feet before S Grippen Ave near the the Lady of Good Counsel Endicott", "latitude": 42.092492, "longitude": -76.078154, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -6467,9 +8377,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 3 Dock A", "latitude": 42.101635, "longitude": -75.910778, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6478,9 +8391,12 @@ "description": "The stop is located on a sign post at the corner before E. Niles Rd near Trucks R Us.", "latitude": 42.164555, "longitude": -75.874176, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6489,9 +8405,12 @@ "description": "The stop is located on a telephone pole about 200 feet after Eldridge St near Bennedum's Lock Binghamton", "latitude": 42.105659, "longitude": -75.909103, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6500,9 +8419,12 @@ "description": "The stop is located on a sign post about 100 before Ivan Ln at private residence Fenton", "latitude": 42.16275, "longitude": -75.877556, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6511,9 +8433,12 @@ "description": "The stop is located on a telephone pole before the entrance to Lupo's Char Pit Binghamton", "latitude": 42.107731, "longitude": -75.907509, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6522,9 +8447,12 @@ "description": "The stop is located on a telephone pole about 75 feet before Prentice Blvd Fenton", "latitude": 42.158688, "longitude": -75.881935, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6533,9 +8461,12 @@ "description": "The stop is located on a telephone pole before the entrance to CVS Binghamton", "latitude": 42.10947, "longitude": -75.9049, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6544,9 +8475,12 @@ "description": "The stop is located on a sign post across from Mead Rd at private residence Fenton", "latitude": 42.157314, "longitude": -75.882622, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6555,9 +8489,12 @@ "description": "The stop is located near Rent a Center Binghamton Plaza Binghamton", "latitude": 42.110573, "longitude": -75.906036, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6566,9 +8503,12 @@ "description": "The stop is located on a telephone pole at the corner before Hinds St Binghamton", "latitude": 42.155083, "longitude": -75.883636, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6577,9 +8517,12 @@ "description": "The stop is located near the New York Pizzeria Binghamton Plaza Binghamton", "latitude": 42.109234, "longitude": -75.906723, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6588,9 +8531,12 @@ "description": "The stop is located on a sign post about 25 feet after Hadsell Rd at private residence Fenton", "latitude": 42.1535, "longitude": -75.884361, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6599,9 +8545,12 @@ "description": "The stop is located on a sign post at the corner before the intersection near Town & Country Apts.", "latitude": 42.110638, "longitude": -75.903053, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6610,9 +8559,12 @@ "description": "The stop is located on a sign post about 150 feet before Hotchkiss Ave across from the Children's Home of the Wyoming Conference Fenton", "latitude": 42.151081, "longitude": -75.885818, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6621,9 +8573,12 @@ "description": "The stop is located on a telephone pole about 75 feet after State St near the Cenentary Chenango St Chuch Binghamton", "latitude": 42.111679, "longitude": -75.902657, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6632,9 +8587,12 @@ "description": "The stop is located on a telephone pole across from Alida Ave at a private residence Fenton", "latitude": 42.149643, "longitude": -75.886925, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6643,9 +8601,12 @@ "description": "The stop is located on a telephone pole at the corner before Morgan St Binghamton", "latitude": 42.113174, "longitude": -75.902435, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6654,9 +8615,12 @@ "description": "The stop is located on a sign post about 125 after Nowland Rd just after Lois Av near Country Additions Fenton", "latitude": 42.147705, "longitude": -75.888428, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6665,9 +8629,12 @@ "description": "The stop is located on a on a sign post at the corner before Moffat Ave by Calvary Baptist Church", "latitude": 42.11414, "longitude": -75.90229, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6676,9 +8643,12 @@ "description": "The stop is located on a telephone pole across from Franklin Ave near St Francis of Assisi Port Dickinson", "latitude": 42.145039, "longitude": -75.890541, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6687,9 +8657,12 @@ "description": "The stop is located on a telephone pole before the entrance to Kriener and Furlong Binghamton", "latitude": 42.115471, "longitude": -75.902077, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6698,9 +8671,12 @@ "description": "The stop is located on a sign post about 75 feet before Dickinson Ave across from Shear Designz Port Dickinson", "latitude": 42.143452, "longitude": -75.891953, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6709,9 +8685,12 @@ "description": "The stop is located on a telephone pole opposite Green St near the entrance of Xtra Mart Binghamton", "latitude": 42.117783, "longitude": -75.901642, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6720,9 +8699,12 @@ "description": "The stop is located on a sign post about 20 feet after Grant St from FMK Karate Port Dickinson", "latitude": 42.138008, "longitude": -75.895683, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6731,9 +8713,12 @@ "description": "The stop is located on a sign post next to a fire hydrant before Linden St Binghamton", "latitude": 42.120275, "longitude": -75.900262, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6742,9 +8727,12 @@ "description": "The stop is located on a sign post before Mill St by the crosswalk across from Port Dickinson Elementary School Port Dickinson", "latitude": 42.136879, "longitude": -75.895859, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6753,9 +8741,12 @@ "description": "The stop is located on a sign post at a private residence before Blanchard Ave Binghamton", "latitude": 42.1227, "longitude": -75.898842, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6764,9 +8755,12 @@ "description": "The stop is located on a sign post at the corner before Church St near the Community Baptist Church Port Dickinson", "latitude": 42.134423, "longitude": -75.896223, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6775,9 +8769,12 @@ "description": "The stop is located on a telephone pole about 100 feet after Baird Ave Binghamton", "latitude": 42.124882, "longitude": -75.898026, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6786,9 +8783,12 @@ "description": "The stop is located on a sign post about 30 feet before Terry Ave at private residence Port Dickinson", "latitude": 42.131071, "longitude": -75.896331, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6797,9 +8797,12 @@ "description": "The stop is located on a sign post about 50 feet after Bromley Ave near the the Village Coin Laundry Binghamton.", "latitude": 42.126308, "longitude": -75.897499, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6808,9 +8811,12 @@ "description": "The stop is located on a sign post about 25 feet before State Rd at private residence Port Dickinson", "latitude": 42.128757, "longitude": -75.896919, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6819,9 +8825,12 @@ "description": "The stop is located on a sign post before Old State Rd Port Dickinson", "latitude": 42.128422, "longitude": -75.896851, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6830,9 +8839,12 @@ "description": "The stop is located on a sign post across from Bromley Ave across from the Coin Laundry Binghamton", "latitude": 42.126022, "longitude": -75.89772, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6841,9 +8853,12 @@ "description": "The stop is located on a sign post at private residence across from Terry Ave Port Dickinson", "latitude": 42.130749, "longitude": -75.896187, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6852,9 +8867,12 @@ "description": "The stop is located on a sign post across from Baird Ave across Community Baptist Church Binghamton", "latitude": 42.124489, "longitude": -75.898308, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6863,9 +8881,12 @@ "description": "The stop is located on a telephone pole after James St across from Chase & DeMarco Funeral Home Port Dickinson", "latitude": 42.133686, "longitude": -75.896179, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6874,9 +8895,12 @@ "description": "The stop is located on a telephone pole across from Blancard Ave Binghamton. A bus shelter is here.", "latitude": 42.122799, "longitude": -75.898941, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6885,9 +8909,12 @@ "description": "The stop is located on a sign post after Mill St near Port Dickinson Elementary School Port Dickinson", "latitude": 42.136761, "longitude": -75.895699, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6896,9 +8923,12 @@ "description": "The stop is located on a sign post across from Dennison Ave near Immmanuel Presbyterian Church Binghamton", "latitude": 42.119484, "longitude": -75.90097, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6907,9 +8937,12 @@ "description": "The stop is located on a sign post before Phelps St near FMK Karate Port Dickinson", "latitude": 42.137993, "longitude": -75.895554, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6918,9 +8951,12 @@ "description": "The stop is located on a sign post at the corner after Green St near Courtesy Cars Binghamton", "latitude": 42.11779, "longitude": -75.901817, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6929,9 +8965,12 @@ "description": "The stop is located on a telephone pole before Dickinson Ave near Superior Auto Port Dickinson", "latitude": 42.143021, "longitude": -75.89222, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6940,9 +8979,12 @@ "description": "The stop is located on a sign post about 15 feet before Truesdell St across from Calvary Baptist Church Binghamton", "latitude": 42.114189, "longitude": -75.902435, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6951,9 +8993,12 @@ "description": "The stop is located on a sign post at the corner before Franklin Ave across from St Francis of Assisi Fenton", "latitude": 42.144917, "longitude": -75.890457, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6962,9 +9007,12 @@ "description": "The stop is located on a sign post at the corner before Pleasant St at a private residence Binghamton", "latitude": 42.112598, "longitude": -75.902657, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6973,9 +9021,12 @@ "description": "The stop is located on a sign post before Nowlan Rd across from Subway Fenton", "latitude": 42.147881, "longitude": -75.888138, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6984,9 +9035,12 @@ "description": "The stop is located on a sign post after Alida Ave at a private residence Fenton", "latitude": 42.149738, "longitude": -75.886711, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -6995,9 +9049,12 @@ "description": "The stop is located on a sign post after Hotchkiss Ave near the Children's Home of the Wyoming Conference Fenton", "latitude": 42.151241, "longitude": -75.885536, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7006,9 +9063,12 @@ "description": "The stop is located about 150 feet after State St in front of CVS Binghamton. There is a bus bus shelter here.", "latitude": 42.109493, "longitude": -75.90387, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7017,9 +9077,12 @@ "description": "The stop is located on a sign post before Ronan St Fenton", "latitude": 42.153591, "longitude": -75.884193, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7028,9 +9091,12 @@ "description": "The stop is located on a sign post across from Hinds St at private residence Fenton", "latitude": 42.155186, "longitude": -75.883453, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7039,9 +9105,12 @@ "description": "The stop is located on a sign post before Mead Rd near the First Church of the Nazarene Fenton", "latitude": 42.157307, "longitude": -75.882446, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7050,9 +9119,12 @@ "description": "The stop is located on a sign post about 200 feet after Cornish Ave Fenton", "latitude": 42.158958, "longitude": -75.881645, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7061,9 +9133,12 @@ "description": "The stop is located on a sign post before E Niles Rd across from Trucks R Us Fenton", "latitude": 42.164261, "longitude": -75.874611, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "40) Chenango St" + ], + "route_ids": [ + "BCT_40" ] }, { @@ -7072,9 +9147,12 @@ "description": "The stop is located on a sign post about 50 feet after Kattelville Rd near the Red White Chenango Bridge", "latitude": 42.168858, "longitude": -75.872398, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -7083,9 +9161,12 @@ "description": "The stop is located on a sign post across from Palmer St near the Chenango Valley Nursery Chenango Bridge", "latitude": 42.168297, "longitude": -75.870216, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -7094,9 +9175,12 @@ "description": "The stop is located on a sign post across from Clarendon Dr near St Mark's Church Chenango Bridge.", "latitude": 42.167484, "longitude": -75.867142, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -7105,9 +9189,12 @@ "description": "The stop is located on a sign post about 20 feet before at the corner before Mountainview Dr at private residence Chenango Bridge.", "latitude": 42.166763, "longitude": -75.863297, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -7116,9 +9203,12 @@ "description": "The stop is located on a sign post at the corner before Everett Rd at a private residence Chenango Bridge", "latitude": 42.166561, "longitude": -75.860924, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -7127,9 +9217,12 @@ "description": "The stop is located before Hodge Rd Chenango Bridge. This is a flag stop.", "latitude": 42.168224, "longitude": -75.857819, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -7138,10 +9231,14 @@ "description": "The stop is located on a telephone pole about 100 feet after Poplar Hill at a private residence Chenango Bridge", "latitude": 42.166325, "longitude": -75.856888, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -7150,10 +9247,14 @@ "description": "The stop is located on a telephone pole about 40 feet passed Norman Rd at a private residence Chenango Bridge", "latitude": 42.166683, "longitude": -75.861099, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -7162,10 +9263,14 @@ "description": "The stop is located on a sign post across from Mountainview Dr at a private residence Chenangon Bridge", "latitude": 42.166893, "longitude": -75.863327, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -7174,10 +9279,14 @@ "description": "The stop is located on a sign post about 10 feet before Clarendon Dr at a private residence Chenango Bridge.", "latitude": 42.1675, "longitude": -75.866722, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -7186,10 +9295,14 @@ "description": "The stop is located on a sign post at the corner before Palmer St at a private residence Chenango Bridge.", "latitude": 42.168346, "longitude": -75.869995, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -7198,10 +9311,14 @@ "description": "The stop is located on a sign post about 250 feet Kattelville Rd near the M&T Bank Chenango Bridge.", "latitude": 42.168934, "longitude": -75.872086, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "40) Chenango St" + ], + "route_ids": [ + "BCT_8", + "BCT_40" ] }, { @@ -7210,8 +9327,9 @@ "description": "The stop is located on a sign post before Lyon St near the former North Presbyterian Church Binghamton", "latitude": 42.108273, "longitude": -75.903236, - "provider": "BC Transit", - "routes": [] + "provider": "BCT", + "routes": [], + "route_ids": [] }, { "id": "4098", @@ -7219,8 +9337,9 @@ "description": "The stop is located on a sign post before the intersection across from the CVS Binghamton", "latitude": 42.10963, "longitude": -75.903699, - "provider": "BC Transit", - "routes": [] + "provider": "BCT", + "routes": [], + "route_ids": [] }, { "id": "4701", @@ -7228,9 +9347,12 @@ "description": "The stop is located on a sign post about 200 feet after the Vestal Pkwy across from the Shoppes of Vestal Vestal", "latitude": 42.094837, "longitude": -76.014366, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7239,11 +9361,16 @@ "description": "The stop is located on a telephone pole near the Fed Ex sign after University Square Plaza Vestal", "latitude": 42.096066, "longitude": -75.97847, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_57", + "BCT_91" ] }, { @@ -7252,9 +9379,12 @@ "description": "The stop is located on a sign post 250 after Vestal Rd by Sam's Club Vestal", "latitude": 42.098797, "longitude": -76.006477, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7263,9 +9393,12 @@ "description": "The stop is located in front of Rite Aid in the Campus Plaza Vestal", "latitude": 42.098342, "longitude": -75.983041, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7274,10 +9407,14 @@ "description": "The stop is located betweenTarget and Bed Bath & Beyond in the Parkway Plaza Vestal", "latitude": 42.094188, "longitude": -76.00091, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_91" ] }, { @@ -7286,9 +9423,12 @@ "description": "", "latitude": 42.0942971762309, "longitude": -76.0008125493248, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7297,10 +9437,14 @@ "description": "The stop is located on a sign post on the corner before Gates Rd near the Grace Point Chuch Vestal", "latitude": 42.1008285336005, "longitude": -75.9855262207737, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "47) Vestal" + ], + "route_ids": [ + "BCT_17", + "BCT_47" ] }, { @@ -7309,10 +9453,14 @@ "description": "The stop is located by Price Rite in the Parkway Plaza Vestal", "latitude": 42.094212, "longitude": -76.000172, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_91" ] }, { @@ -7321,9 +9469,12 @@ "description": "", "latitude": 42.0942927660783, "longitude": -76.0002237915704, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7332,10 +9483,14 @@ "description": "The stop is located on a telephone pole after Commerce Rd near National Pipe Vestal.", "latitude": 42.102848, "longitude": -75.991211, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "47) Vestal" + ], + "route_ids": [ + "BCT_17", + "BCT_47" ] }, { @@ -7344,10 +9499,14 @@ "description": "The stop is located by PetSmart in the Parkway Plaza Vestal", "latitude": 42.094286, "longitude": -75.998635, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_91" ] }, { @@ -7356,9 +9515,12 @@ "description": "", "latitude": 42.09436, "longitude": -75.998697, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7367,10 +9529,14 @@ "description": "The stop is located on a sign post about 100 feet after the Vestal Rd across from the Mirabito Fuel Station Vestal", "latitude": 42.103104, "longitude": -75.995232, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "47) Vestal" + ], + "route_ids": [ + "BCT_17", + "BCT_47" ] }, { @@ -7379,9 +9545,12 @@ "description": "The stop is located on a sign post at the corner before the entrance to Anthos Apts Vestal", "latitude": 42.092793, "longitude": -76.00296, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7390,10 +9559,14 @@ "description": "The stop is located on a sign post across from Brentwood Place by Broome County Building Supply Vestal", "latitude": 42.101162, "longitude": -75.995773, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "47) Vestal" + ], + "route_ids": [ + "BCT_17", + "BCT_47" ] }, { @@ -7402,9 +9575,12 @@ "description": "The stop is located on a sign post about 20 feet after Rano Blvd at a private residence Vestal", "latitude": 42.0914, "longitude": -76.002449, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7413,10 +9589,14 @@ "description": "The stop is located on a sign post about 350 feet before Stewart Rd across from Puglisi Tax Svc", "latitude": 42.099384, "longitude": -75.996063, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "47) Vestal" + ], + "route_ids": [ + "BCT_17", + "BCT_47" ] }, { @@ -7425,9 +9605,12 @@ "description": "The stop is located on a sign post at the corner after Royal St at a private residence Vestal", "latitude": 42.09166, "longitude": -75.999809, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7436,10 +9619,14 @@ "description": "The stop is located on a telephone pole about 370 feet before NY 434 near Best Buy Vestal", "latitude": 42.097813, "longitude": -75.995924, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "47) Vestal" + ], + "route_ids": [ + "BCT_17", + "BCT_47" ] }, { @@ -7448,9 +9635,12 @@ "description": "The stop is located on a sign post across from Riviera Ridge Apts Vestal.", "latitude": 42.091877, "longitude": -75.99601, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7459,9 +9649,12 @@ "description": "The stop is located on a sign post after the entrance to Parkway Plaza on the backside of Kohls Vestal", "latitude": 42.095242, "longitude": -75.995651, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7470,9 +9663,12 @@ "description": "The stop is located on a sign post about 20 feet after Chalburn Rd at a private residence Vestal", "latitude": 42.093845, "longitude": -75.995407, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7481,9 +9677,12 @@ "description": "The stop is located on a sign post after the entrance to Riviera Ridge Apartments Vestal", "latitude": 42.091923, "longitude": -75.99659, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7492,9 +9691,12 @@ "description": "The stop is located on a sign post about 330 feet before NY 434 after the entrance to the United Way.", "latitude": 42.0956, "longitude": -75.995583, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7503,9 +9705,12 @@ "description": "The stop is located on a sign post before the entrance to Holly Brook Apts Vestal", "latitude": 42.091705, "longitude": -76.000145, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7514,9 +9719,12 @@ "description": "The stop is located on a telephone pole after Stewart Rd near Green Acres Garden Center Vestal", "latitude": 42.098568, "longitude": -75.995834, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7525,9 +9733,12 @@ "description": "The stop is located on a sign post at the corner before Rano Blvd at a private residence Vestal", "latitude": 42.091484, "longitude": -76.002541, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7536,9 +9747,12 @@ "description": "The stop is located on a sign post by Puglisi Tax Svc Vestal", "latitude": 42.099243, "longitude": -75.995911, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7547,9 +9761,12 @@ "description": "The stop is located on a sign post about 25 before the entrance to Parkway Plaza Vestal", "latitude": 42.093201, "longitude": -76.002998, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7558,9 +9775,12 @@ "description": "The stop is located on a sign post at the corner after Brentwood Pl near the Bethel Baptist Church Vestal", "latitude": 42.101284, "longitude": -75.995621, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7569,9 +9789,12 @@ "description": "The stop is located on a telephone pole before Vestal Rd near the Mirabito Fuel Station Vestal", "latitude": 42.103325, "longitude": -75.99501, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7580,11 +9803,16 @@ "description": "The stop is located on a sign post about 150 feet before Steward Rd in front of Burger King Vestal", "latitude": 42.09663, "longitude": -76.004936, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_57", + "BCT_91" ] }, { @@ -7593,9 +9821,12 @@ "description": "The stop is located on a sign post at the corner before Schnubmehl Rdacross from Audio Classics Binghamton.", "latitude": 42.102551, "longitude": -75.990517, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7604,9 +9835,12 @@ "description": "The stop is located at the front entrace of Lourdes Vestal on Shippers Rd Vestal", "latitude": 42.1002357247816, "longitude": -76.0055841561604, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7615,9 +9849,12 @@ "description": "The stop is located across from Gates Rd in front of the Willow Point Nursing Home", "latitude": 42.100704, "longitude": -75.985588, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7626,11 +9863,16 @@ "description": "The stop is located between Barnes & Noble and Sam's Club in the Town Square Mall. There is a bus shelter here.", "latitude": 42.097069, "longitude": -76.007721, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_57", + "BCT_91" ] }, { @@ -7639,9 +9881,12 @@ "description": "The stop is located on a sign post after the entrance to Westminster Apartments Vestal", "latitude": 42.099369, "longitude": -75.983582, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7650,11 +9895,16 @@ "description": "The stop is located by the Walmart Gardnen Center, Town Square Mall Vestal", "latitude": 42.096136, "longitude": -76.012628, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_57", + "BCT_91" ] }, { @@ -7663,9 +9913,12 @@ "description": "The stop is located in front of Rite Aid in the Campus Plaza Vestal", "latitude": 42.0984337941919, "longitude": -75.98314736979, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7674,10 +9927,14 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 8 Dock B", "latitude": 42.101931, "longitude": -75.910561, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter", "53) Corporate Park" + ], + "route_ids": [ + "BCT_51", + "BCT_53" ] }, { @@ -7686,10 +9943,14 @@ "description": "The stop is located on a sign post about 100 feet before Oak Hill Ave across from Crown Fried Chicken Endicott", "latitude": 42.104645, "longitude": -76.049255, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7698,10 +9959,14 @@ "description": "The stop is located on telephone pole after Clarke St across from NCI Endicot", "latitude": 42.108017, "longitude": -76.049977, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7710,10 +9975,14 @@ "description": "The stop is located on a sign post after Witherall St near Joey's Pizza Endicott", "latitude": 42.111164, "longitude": -76.050194, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7722,10 +9991,14 @@ "description": "The stop is located on a sign post about 50 feet after Jenkins St near the Learning Center of St Anthony Endicott", "latitude": 42.112988, "longitude": -76.050293, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7734,10 +10007,14 @@ "description": "The stop is located on a telephone pole at the corner before Pine St near Rossi's Pizza Endicott", "latitude": 42.114761, "longitude": -76.050407, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7746,10 +10023,14 @@ "description": "The stop is located on a sign post at the corner before Hill Ave near a private residence Endicott", "latitude": 42.114887, "longitude": -76.048523, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7758,10 +10039,14 @@ "description": "The stop is located on a sign post at the corner before Rogers Ave near United Artists Hair Salon Endicott", "latitude": 42.115017, "longitude": -76.046379, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7770,10 +10055,14 @@ "description": "The stop is located on a 30 MPH road sign about 75ft after Pine- Endicott", "latitude": 42.115578, "longitude": -76.045326, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7782,10 +10071,14 @@ "description": "The stop is located on a sign post across from Woodrow Ave at a private residence Endicott", "latitude": 42.11739, "longitude": -76.043854, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7794,10 +10087,14 @@ "description": "The stop is located on a sign post about 20 feet before Taft Ave acoss from an apartment complex Endicott", "latitude": 42.118652, "longitude": -76.039314, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7806,10 +10103,14 @@ "description": "The stop is located on telephone pole across from Smith Rd- Endicott", "latitude": 42.117165, "longitude": -76.039009, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7818,10 +10119,14 @@ "description": "The stop is located on a sign post about 50 feet before Country Club Rd at a private residence Endicott", "latitude": 42.115547, "longitude": -76.038887, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7830,10 +10135,14 @@ "description": "The stop is located on a sign post at the corner before Pierce Ave at a private residence Endicott", "latitude": 42.1153703746527, "longitude": -76.0373250565935, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7842,10 +10151,14 @@ "description": "The stop is located on a telephone pole about 50 ft before Center St near a private residence Endicott", "latitude": 42.115601, "longitude": -76.032433, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7854,10 +10167,14 @@ "description": "The stop is located on a sign post about 50 feet after Pruyne St near the M & T Bank Endwell", "latitude": 42.119389, "longitude": -76.019051, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7866,10 +10183,14 @@ "description": "The stop is located on a sign post about 75 feet before Pheasant Ln at a private residence Endwell", "latitude": 42.122437, "longitude": -76.020592, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7878,10 +10199,14 @@ "description": "The stop is located on a sign post about 200 feet after Farm to Market Rd Endwell", "latitude": 42.126076, "longitude": -76.024559, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7890,10 +10215,14 @@ "description": "The stop is located at the entrance of Park Manor Plaza Endwell", "latitude": 42.128045, "longitude": -76.028202, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7902,10 +10231,14 @@ "description": "The stop is located on a sign post about 50 feet before Manor Dr at a private residence Endwell", "latitude": 42.129539, "longitude": -76.032593, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7914,10 +10247,14 @@ "description": "The stop is located on a sign post at the second entrance to Marian Apts Endwell", "latitude": 42.125381, "longitude": -76.023926, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7926,10 +10263,14 @@ "description": "The stop is located on a sign post across from Pheasant St at a private residence Endwell", "latitude": 42.1227993823475, "longitude": -76.0210825092795, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7938,10 +10279,14 @@ "description": "The stop is located on a sign post across from Pruyne St near the M&T Bank Endwell", "latitude": 42.119221, "longitude": -76.019104, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -7950,9 +10295,12 @@ "description": "The stop is located on a telephone pole about 50 feet before Colgate Dr at a private residence Endwell.", "latitude": 42.115658, "longitude": -76.032829, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7961,9 +10309,12 @@ "description": "The stop is located on a telephone pole about 100 feet before Taft Ave near A Class Act Salon Endwell.", "latitude": 42.115448, "longitude": -76.037971, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7972,9 +10323,12 @@ "description": "The stop is located on a sing post at the corner before Squires Ave near the Close Quarters Restaurant Endicott", "latitude": 42.11507, "longitude": -76.047249, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7983,9 +10337,12 @@ "description": "The stop is located on a telephone pole about 50 feet before Hill Ave at a private residence Endicott", "latitude": 42.115021, "longitude": -76.048187, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -7994,9 +10351,12 @@ "description": "The stop is located on a sign post about 10 feet before Oak Hill Ave near Rossi's Pizza Endicott", "latitude": 42.114922, "longitude": -76.050362, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8005,9 +10365,12 @@ "description": "The stop is located about 25 feet before Jenkins St at a private residence Endicott", "latitude": 42.112976, "longitude": -76.05043, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8016,9 +10379,12 @@ "description": "The stop is located on a telephone pole at the cross walk before Witherall St near the Northside Park Endicott", "latitude": 42.111137, "longitude": -76.050301, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8027,10 +10393,14 @@ "description": "The stop is located on a sign post about 100 feet before Clarke St near NCI Endicott", "latitude": 42.107725, "longitude": -76.050106, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -8039,9 +10409,12 @@ "description": "New bus stop near the Price Chopper plaza effective 2-6-17", "latitude": 42.105175, "longitude": -76.04993, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -8050,9 +10423,12 @@ "description": "The stop is located on a sign post at the corner before River Terrace by the Riverview Apts Endicott", "latitude": 42.093224, "longitude": -76.057091, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8061,9 +10437,12 @@ "description": "The stop is located on a sign post about 20 feet before Commercial Plaza Dr across from Advanced Auto Parts Vestal", "latitude": 42.087836, "longitude": -76.053898, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8072,9 +10451,12 @@ "description": "The stop is located on a telephone pole about 75 feet Clayton Ave by the Magic City Carwash Vestal NY", "latitude": 42.086988, "longitude": -76.048945, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8083,9 +10465,12 @@ "description": "The stop is located about 200 feet before Ridgehaven Dr by American Family Fitness Vestal. A bus shelter is here.", "latitude": 42.092913, "longitude": -76.022995, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8094,9 +10479,12 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 8 Dock B", "latitude": 42.102015, "longitude": -75.910667, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -8105,11 +10493,16 @@ "description": "The stop is located on Bunn Hill near the BU Campus. A bus shelter is here", "latitude": 42.094433, "longitude": -75.975301, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal", "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_47", + "BCT_57", + "BCT_91" ] }, { @@ -8118,10 +10511,14 @@ "description": "The stop is located on a telephone pole near the Bao Bao Restaurant Vestal NY", "latitude": 42.0964581, "longitude": -75.9822475, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_57", + "BCT_91" ] }, { @@ -8130,10 +10527,14 @@ "description": "The stop is located on a telephone pole between the Mirabito and Arby's Vestal A bus shelter is here.", "latitude": 42.0961273000715, "longitude": -76.0002566856327, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_57", + "BCT_91" ] }, { @@ -8142,10 +10543,14 @@ "description": "The stop is located after the entrance to Parkway Plaza Vestal.", "latitude": 42.0957972, "longitude": -76.0001647, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_57", + "BCT_91" ] }, { @@ -8154,11 +10559,16 @@ "description": "The stop is located on the east side of the Wegman's store entrance Johnson City", "latitude": 42.123251341297, "longitude": -75.9725721767345, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "17) Johnson City", "48) Shoppers Express Oakdale Mall", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_17", + "BCT_48", + "BCT_57" ] }, { @@ -8167,9 +10577,12 @@ "description": "The stop is located on a sign post about 75 feet after Leroy St near Renaissance Plaza Binghamton", "latitude": 42.0952092, "longitude": -75.9186521, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -8178,9 +10591,12 @@ "description": "The stop is located on a telephone pole about 60 feet before Main St near Thai Time Binghamton", "latitude": 42.098319, "longitude": -75.9175933, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -8189,9 +10605,12 @@ "description": "The stop is located after the intersection between Take a Break and Pete's Legacy Diner", "latitude": 42.096966, "longitude": -76.015648, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8200,9 +10619,12 @@ "description": "The stop is located after the intersection.", "latitude": 42.097149, "longitude": -76.023926, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8211,10 +10633,14 @@ "description": "The stop is located across the street from Weis before the instersection.", "latitude": 42.11087, "longitude": -76.072075, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -8223,9 +10649,12 @@ "description": "The stop is located after the intersection.", "latitude": 42.097187, "longitude": -76.026337, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8234,9 +10663,12 @@ "description": "The stop is located before the intersection", "latitude": 42.098129, "longitude": -76.065285, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8245,9 +10677,12 @@ "description": "The stop is located on telephone before the entrance to Weis", "latitude": 42.1108839093283, "longitude": -76.0717602821458, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8256,13 +10691,20 @@ "description": "The stop is located at the Universisty Union Bus Lane Vestal", "latitude": 42.087051, "longitude": -75.967056, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave", "15) Leroy St", "47) Vestal", "48) Shoppers Express Oakdale Mall", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_5", + "BCT_15", + "BCT_47", + "BCT_48", + "BCT_91" ] }, { @@ -8271,12 +10713,18 @@ "description": "The stop is located on East Dr by the BU Mohawk Hall Vestal. There is a bus shelter here.", "latitude": 42.086918, "longitude": -75.965965, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "5) Vestal Ave", "15) Leroy St", "47) Vestal", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_5", + "BCT_15", + "BCT_47", + "BCT_57" ] }, { @@ -8285,11 +10733,16 @@ "description": "The stop is located at the bus lane off East Dr at the BU Union Vestal", "latitude": 42.088721, "longitude": -75.973194, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "47) Vestal", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_15", + "BCT_47", + "BCT_57" ] }, { @@ -8298,12 +10751,18 @@ "description": "The stop is located on a sign post near Lot I across from the Tennis Courts at Binghamton University.", "latitude": 42.091752, "longitude": -75.974413, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City", "47) Vestal", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_15", + "BCT_17", + "BCT_47", + "BCT_57" ] }, { @@ -8312,7 +10771,7 @@ "description": "The stop is located near the BU Event Center/Tennis Courts in Vestal. There is a bus shelter here.", "latitude": 42.090981, "longitude": -75.973381, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St", "17) Johnson City", @@ -8320,6 +10779,14 @@ "48) Shoppers Express Oakdale Mall", "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_15", + "BCT_17", + "BCT_47", + "BCT_48", + "BCT_57", + "BCT_91" ] }, { @@ -8328,9 +10795,12 @@ "description": "BU Stop for 57", "latitude": 42.08728, "longitude": -75.965178, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special" + ], + "route_ids": [ + "BCT_57" ] }, { @@ -8339,10 +10809,14 @@ "description": "BU Stop for 16 and 17", "latitude": 42.087045, "longitude": -75.96626, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "16) BU Express", "17) Johnson City" + ], + "route_ids": [ + "BCT_16", + "BCT_17" ] }, { @@ -8351,9 +10825,12 @@ "description": "This is a flag stop near Achieve Binghamton", "latitude": 42.129569, "longitude": -75.911695, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -8362,9 +10839,12 @@ "description": "This is a flag stop located at Carroll and Hawley", "latitude": 42.098173, "longitude": -75.907222, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -8373,9 +10853,12 @@ "description": "This is a flag stop located at Hawley and Myrtle", "latitude": 42.097706, "longitude": -75.908633, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St" + ], + "route_ids": [ + "BCT_8" ] }, { @@ -8384,10 +10867,14 @@ "description": "The stop is located at the Greater Binghamton Transportation Center BC Junction Bay 6 Dock A", "latitude": 42.101815, "longitude": -75.910595, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "8) Front St", "57) Shoppers Special" + ], + "route_ids": [ + "BCT_8", + "BCT_57" ] }, { @@ -8396,9 +10883,12 @@ "description": "This is a flag stop area.", "latitude": 42.096852, "longitude": -75.837349, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8407,9 +10897,12 @@ "description": "This is a flag stop area.", "latitude": 42.094688, "longitude": -75.835223, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8418,10 +10911,14 @@ "description": "This is a flag stop area.", "latitude": 42.101991, "longitude": -75.83611, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter", "53) Corporate Park" + ], + "route_ids": [ + "BCT_51", + "BCT_53" ] }, { @@ -8430,9 +10927,12 @@ "description": "This is a flag stop area.", "latitude": 42.10493, "longitude": -75.816046, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8441,9 +10941,12 @@ "description": "This is a flag stop area.", "latitude": 42.10282, "longitude": -75.830586, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8452,9 +10955,12 @@ "description": "This is a flag stop area.", "latitude": 42.101115, "longitude": -75.826415, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8463,9 +10969,12 @@ "description": "This is a flag stop area.", "latitude": 42.09576, "longitude": -75.824218, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8474,9 +10983,12 @@ "description": "This is a flag stop area.", "latitude": 42.099055, "longitude": -75.83162, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8485,9 +10997,12 @@ "description": "This is a flag stop area.", "latitude": 42.087078, "longitude": -75.820407, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8496,9 +11011,12 @@ "description": "This is a flag stop area.", "latitude": 42.08508, "longitude": -75.820273, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8507,9 +11025,12 @@ "description": "This is a flag stop area.", "latitude": 42.08714, "longitude": -75.820277, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8518,9 +11039,12 @@ "description": "This is a flag stop area.", "latitude": 42.104718, "longitude": -75.855379, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8529,9 +11053,12 @@ "description": "This is a flag stop area.", "latitude": 42.104507, "longitude": -75.855413, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "51) K Commuter" + ], + "route_ids": [ + "BCT_51" ] }, { @@ -8540,9 +11067,12 @@ "description": "This is a flag stop area.", "latitude": 42.100649, "longitude": -75.874192, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8551,9 +11081,12 @@ "description": "This is a flag stop area.", "latitude": 42.1003758, "longitude": -75.8621272, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8562,9 +11095,12 @@ "description": "This is a flag stop area.", "latitude": 42.0978085, "longitude": -75.8493197, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8573,9 +11109,12 @@ "description": "This is a flag stop area.", "latitude": 42.0945444, "longitude": -75.8405006, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8584,9 +11123,12 @@ "description": "This is a flag stop area.", "latitude": 42.0903487, "longitude": -75.8336985, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8595,9 +11137,12 @@ "description": "This is a flag stop area.", "latitude": 42.0798264, "longitude": -75.8249062, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8606,9 +11151,12 @@ "description": "This is a flag stop area.", "latitude": 42.076313, "longitude": -75.821091, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8617,9 +11165,12 @@ "description": "This is a flag stop area.", "latitude": 42.064484, "longitude": -75.813839, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8628,9 +11179,12 @@ "description": "This is a flag stop area.", "latitude": 42.063261, "longitude": -75.81648, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8639,9 +11193,12 @@ "description": "This is a flag stop area.", "latitude": 42.061556, "longitude": -75.817255, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8650,9 +11207,12 @@ "description": "This is a flag stop area.", "latitude": 42.060006, "longitude": -75.817905, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8661,9 +11221,12 @@ "description": "This is a flag stop area.", "latitude": 42.056664, "longitude": -75.816921, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8672,9 +11235,12 @@ "description": "This is a flag stop area.", "latitude": 42.055235, "longitude": -75.81636, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8683,9 +11249,12 @@ "description": "This is a flag stop area.", "latitude": 42.052711, "longitude": -75.815886, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8694,9 +11263,12 @@ "description": "This is a flag stop area.", "latitude": 42.048886, "longitude": -75.81663, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8705,9 +11277,12 @@ "description": "This is a flag stop area.", "latitude": 42.045778, "longitude": -75.815965, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8716,9 +11291,12 @@ "description": "This is a flag stop area.", "latitude": 42.041166, "longitude": -75.813323, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8727,9 +11305,12 @@ "description": "This is a flag stop area.", "latitude": 42.03772, "longitude": -75.812482, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8738,9 +11319,12 @@ "description": "This is a flag stop area.", "latitude": 42.035993, "longitude": -75.808359, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8749,9 +11333,12 @@ "description": "This is a flag stop area.", "latitude": 42.038639, "longitude": -75.807142, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8760,9 +11347,12 @@ "description": "This is a flag stop area.", "latitude": 42.040886, "longitude": -75.80999, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8771,9 +11361,12 @@ "description": "This is a flag stop area.", "latitude": 42.050263, "longitude": -75.80634, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8782,9 +11375,12 @@ "description": "This is a flag stop area.", "latitude": 42.061584, "longitude": -75.808975, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8793,9 +11389,12 @@ "description": "This is a flag stop area.", "latitude": 42.0702262, "longitude": -75.8141184, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8804,9 +11403,12 @@ "description": "This is a flag stop area.", "latitude": 42.0771388, "longitude": -75.8214998, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8815,9 +11417,12 @@ "description": "This is a flag stop area.", "latitude": 42.0799658, "longitude": -75.824697, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8826,9 +11431,12 @@ "description": "This is a flag stop area.", "latitude": 42.090293, "longitude": -75.8331621, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8837,9 +11445,12 @@ "description": "This is a flag stop area.", "latitude": 42.0947196, "longitude": -75.8400607, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8848,9 +11459,12 @@ "description": "This is a flag stop area.", "latitude": 42.0981269, "longitude": -75.8492661, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8859,9 +11473,12 @@ "description": "This is a flag stop area.", "latitude": 42.1006026, "longitude": -75.861969, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "53) Corporate Park" + ], + "route_ids": [ + "BCT_53" ] }, { @@ -8870,9 +11487,12 @@ "description": "This is a flag stops located near Taft/Smith (on request only)", "latitude": 42.117149, "longitude": -76.038849, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8881,9 +11501,12 @@ "description": "This is a flag stops located near Newell/Taft (on request only)", "latitude": 42.118736, "longitude": -76.039421, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8892,9 +11515,12 @@ "description": "This is a flag stops located near Newell/Woodrow (on request only)", "latitude": 42.117493, "longitude": -76.043915, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8903,9 +11529,12 @@ "description": "This is a flag stops located near Newell/Pine (on request only)", "latitude": 42.11544, "longitude": -76.045509, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8914,9 +11543,12 @@ "description": "This flag stop is located before Brady Ln in front of the former Lourdes Medical Bldg", "latitude": 42.089847, "longitude": -76.039449, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8925,10 +11557,14 @@ "description": "This is a flag stop area.", "latitude": 42.0969043, "longitude": -75.9899834, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "57) Shoppers Special", "91) Shoppers Special Express" + ], + "route_ids": [ + "BCT_57", + "BCT_91" ] }, { @@ -8937,9 +11573,12 @@ "description": "This is a flag stop on North St near the Cider Mill", "latitude": 42.098019, "longitude": -76.065063, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8948,9 +11587,12 @@ "description": "This is a flag stop on North St near the Cider Mill", "latitude": 42.09825, "longitude": -76.065636, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -8959,9 +11601,12 @@ "description": "This is a flag stop that is located before the insection and across from CVS", "latitude": 42.104443, "longitude": -76.049843, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8970,9 +11615,12 @@ "description": "This is a flag stop located near Absolute Nursing Endicott", "latitude": 42.112663, "longitude": -76.055939, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton" + ], + "route_ids": [ + "BCT_35" ] }, { @@ -8981,9 +11629,12 @@ "description": "This is a flag stop near Summit Chase Apts heading south", "latitude": 42.102264, "longitude": -76.084503, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "47) Vestal" + ], + "route_ids": [ + "BCT_47" ] }, { @@ -8992,10 +11643,14 @@ "description": "This is a flag stop near Summit Chase Apts heading north", "latitude": 42.101997430431, "longitude": -76.0846328222698, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "35) Endicott-Binghamton", "47) Vestal" + ], + "route_ids": [ + "BCT_35", + "BCT_47" ] }, { @@ -9004,9 +11659,12 @@ "description": "The stop is located after the intersection with Pleasant St in Johnson City.", "latitude": 42.111159, "longitude": -75.957576, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -9015,9 +11673,12 @@ "description": "The stop is located near the BU Pharmacy School", "latitude": 42.113027, "longitude": -75.956554, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -9026,9 +11687,12 @@ "description": "The stop is located at the corner before Grand Ave- Johnson City", "latitude": 42.111044, "longitude": -75.954596, - "provider": "BC Transit", + "provider": "BCT", "routes": [ "15) Leroy St" + ], + "route_ids": [ + "BCT_15" ] }, { @@ -9037,8 +11701,9 @@ "description": "BC Junction Bus Station", "latitude": 42.1015658403894, "longitude": -75.9107351607132, - "provider": "BC Transit", - "routes": [] + "provider": "BCT", + "routes": [], + "route_ids": [] }, { "id": "3", @@ -9053,6 +11718,13 @@ "Riviera Ridge - Town Square Mall", "Oakdale Commons", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_3", + "OCCT_9", + "OCCT_10", + "OCCT_14" ] }, { @@ -9064,6 +11736,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9075,6 +11750,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9086,6 +11764,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9097,6 +11778,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9108,6 +11792,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9119,6 +11806,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9130,6 +11820,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9141,6 +11834,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9152,6 +11848,9 @@ "provider": "OCCT", "routes": [ "Westside Outbound" + ], + "route_ids": [ + "OCCT_1" ] }, { @@ -9164,6 +11863,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9176,6 +11879,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9188,6 +11895,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9200,6 +11911,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9212,6 +11927,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9224,6 +11943,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9236,6 +11959,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9248,6 +11975,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9260,6 +11991,10 @@ "routes": [ "Westside Outbound", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_14" ] }, { @@ -9275,6 +12010,13 @@ "Riviera Ridge - Town Square Mall", "Oakdale Commons", "Main Street Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_3", + "OCCT_9", + "OCCT_10", + "OCCT_14" ] }, { @@ -9291,6 +12033,14 @@ "University Downtown Center Inbound", "Main Street Outbound", "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_4", + "OCCT_12", + "OCCT_13", + "OCCT_14", + "OCCT_17" ] }, { @@ -9314,6 +12064,21 @@ "Main Street Outbound", "Main Street Inbound", "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_1", + "OCCT_2", + "OCCT_3", + "OCCT_4", + "OCCT_5", + "OCCT_8", + "OCCT_9", + "OCCT_10", + "OCCT_12", + "OCCT_13", + "OCCT_14", + "OCCT_15", + "OCCT_17" ] }, { @@ -9330,6 +12095,14 @@ "Oakdale Commons", "University Downtown Center Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_4", + "OCCT_9", + "OCCT_10", + "OCCT_13", + "OCCT_15" ] }, { @@ -9342,6 +12115,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9353,6 +12130,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9364,6 +12144,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9375,6 +12158,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9386,6 +12172,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9397,6 +12186,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9408,6 +12200,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9419,6 +12214,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9430,6 +12228,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9442,6 +12243,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9454,6 +12259,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9465,6 +12274,9 @@ "provider": "OCCT", "routes": [ "Westside Inbound" + ], + "route_ids": [ + "OCCT_2" ] }, { @@ -9477,6 +12289,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9489,6 +12305,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9501,6 +12321,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9513,6 +12337,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9525,6 +12353,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9537,6 +12369,10 @@ "routes": [ "Westside Inbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_15" ] }, { @@ -9556,6 +12392,17 @@ "University Downtown Center Inbound", "Main Street Inbound", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_2", + "OCCT_4", + "OCCT_5", + "OCCT_8", + "OCCT_9", + "OCCT_10", + "OCCT_13", + "OCCT_15", + "OCCT_16" ] }, { @@ -9571,6 +12418,13 @@ "Riviera Ridge - Town Square Mall", "Oakdale Commons", "University Downtown Center Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_4", + "OCCT_9", + "OCCT_10", + "OCCT_13" ] }, { @@ -9585,6 +12439,12 @@ "Downtown Center Leroy Outbound", "University Downtown Center Outbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_2", + "OCCT_3", + "OCCT_12", + "OCCT_15" ] }, { @@ -9596,6 +12456,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9607,6 +12470,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9618,6 +12484,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9629,6 +12498,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9640,6 +12512,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9651,6 +12526,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9662,6 +12540,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9673,6 +12554,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9684,6 +12568,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Outbound" + ], + "route_ids": [ + "OCCT_3" ] }, { @@ -9695,6 +12582,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9706,6 +12596,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9717,6 +12610,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9728,6 +12624,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9739,6 +12638,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9750,6 +12652,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9761,6 +12666,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9772,6 +12680,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9783,6 +12694,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9794,6 +12708,9 @@ "provider": "OCCT", "routes": [ "Downtown Center Leroy Inbound" + ], + "route_ids": [ + "OCCT_4" ] }, { @@ -9807,6 +12724,11 @@ "UCLUB", "Campus Shuttle", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_8", + "OCCT_16" ] }, { @@ -9820,6 +12742,11 @@ "UCLUB", "Campus Shuttle", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_8", + "OCCT_16" ] }, { @@ -9832,6 +12759,10 @@ "routes": [ "UCLUB", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_16" ] }, { @@ -9844,6 +12775,10 @@ "routes": [ "UCLUB", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_16" ] }, { @@ -9857,6 +12792,11 @@ "UCLUB", "Campus Shuttle", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_8", + "OCCT_16" ] }, { @@ -9869,6 +12809,10 @@ "routes": [ "UCLUB", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_16" ] }, { @@ -9881,6 +12825,10 @@ "routes": [ "UCLUB", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_16" ] }, { @@ -9893,6 +12841,10 @@ "routes": [ "UCLUB", "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_5", + "OCCT_16" ] }, { @@ -9904,6 +12856,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9915,6 +12870,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9926,6 +12884,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9937,6 +12898,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9948,6 +12912,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9959,6 +12926,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9970,6 +12940,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9981,6 +12954,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -9992,6 +12968,9 @@ "provider": "OCCT", "routes": [ "Campus Shuttle" + ], + "route_ids": [ + "OCCT_8" ] }, { @@ -10003,6 +12982,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10014,6 +12996,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10025,6 +13010,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10036,6 +13024,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10047,6 +13038,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10058,6 +13052,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10069,6 +13066,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10080,6 +13080,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10091,6 +13094,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10102,6 +13108,9 @@ "provider": "OCCT", "routes": [ "Riviera Ridge - Town Square Mall" + ], + "route_ids": [ + "OCCT_9" ] }, { @@ -10113,6 +13122,9 @@ "provider": "OCCT", "routes": [ "Oakdale Commons" + ], + "route_ids": [ + "OCCT_10" ] }, { @@ -10124,6 +13136,9 @@ "provider": "OCCT", "routes": [ "Oakdale Commons" + ], + "route_ids": [ + "OCCT_10" ] }, { @@ -10133,7 +13148,8 @@ "latitude": 42.0972938537598, "longitude": -75.913215637207, "provider": "OCCT", - "routes": [] + "routes": [], + "route_ids": [] }, { "id": "155", @@ -10145,6 +13161,10 @@ "routes": [ "Main Street Outbound", "Main Street Inbound" + ], + "route_ids": [ + "OCCT_14", + "OCCT_15" ] }, { @@ -10156,6 +13176,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10167,6 +13190,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10178,6 +13204,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10189,6 +13218,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10200,6 +13232,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10211,6 +13246,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10222,6 +13260,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10233,6 +13274,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10244,6 +13288,9 @@ "provider": "OCCT", "routes": [ "Main Street Outbound" + ], + "route_ids": [ + "OCCT_14" ] }, { @@ -10255,6 +13302,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10266,6 +13316,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10277,6 +13330,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10288,6 +13344,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10299,6 +13358,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10310,6 +13372,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10321,6 +13386,9 @@ "provider": "OCCT", "routes": [ "Main Street Inbound" + ], + "route_ids": [ + "OCCT_15" ] }, { @@ -10332,6 +13400,9 @@ "provider": "OCCT", "routes": [ "ITC - UCLUB" + ], + "route_ids": [ + "OCCT_16" ] }, { @@ -10343,6 +13414,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10354,6 +13428,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10365,6 +13442,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10376,6 +13456,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10387,6 +13470,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10398,6 +13484,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10409,6 +13498,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10420,6 +13512,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10431,6 +13526,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10442,6 +13540,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10453,6 +13554,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10464,6 +13568,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10475,6 +13582,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10486,6 +13596,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10497,6 +13610,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10508,6 +13624,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] }, { @@ -10519,6 +13638,9 @@ "provider": "OCCT", "routes": [ "Downtown Southside Outbound" + ], + "route_ids": [ + "OCCT_17" ] } ] \ No newline at end of file diff --git a/src/server/GET_routes.json b/src/server/GET_routes.json new file mode 100644 index 0000000..fe8faef --- /dev/null +++ b/src/server/GET_routes.json @@ -0,0 +1,1454 @@ +[ + { + "id": "BCT_3", + "provider": "BCT", + "full_name": "3) Park Ave", + "short_name": "3", + "stops": [ + "302", + "304", + "306", + "504", + "506", + "508", + "510", + "512", + "514", + "516", + "308", + "310", + "312", + "314", + "316", + "318", + "320", + "322", + "324", + "326", + "328", + "301", + "303", + "305", + "307", + "309", + "311", + "313", + "315", + "317", + "319", + "321", + "323", + "535", + "325.1", + "325.2", + "329", + "331", + "553", + "1.1", + "22", + "1" + ] + }, + { + "id": "BCT_5", + "provider": "BCT", + "full_name": "5) Vestal Ave", + "short_name": "5", + "stops": [ + "500", + "502", + "504", + "506", + "508", + "510", + "512", + "514", + "516", + "518", + "520", + "522", + "524", + "526", + "528", + "530", + "532", + "534", + "536", + "538", + "540", + "542", + "544", + "546", + "548", + "550", + "552", + "554", + "556", + "558", + "560", + "562", + "6000" + ] + }, + { + "id": "BCT_7", + "provider": "BCT", + "full_name": "7) Clinton St", + "short_name": "7", + "stops": [ + "702", + "3502", + "806", + "808", + "704", + "706", + "708", + "710", + "712", + "714", + "716", + "718", + "720", + "722", + "724", + "726", + "728", + "730", + "732", + "734", + "736", + "738", + "740", + "742", + "744", + "746", + "748", + "750", + "752", + "754", + "756", + "758", + "760", + "762", + "764", + "766", + "768", + "770", + "772", + "774", + "776", + "778", + "780", + "782", + "784", + "786", + "788", + "790", + "792", + "794", + "3562.2" + ] + }, + { + "id": "BCT_8", + "provider": "BCT", + "full_name": "8) Front St", + "short_name": "8", + "stops": [ + "802", + "3502", + "806", + "808", + "810", + "812", + "814", + "818", + "8001", + "822", + "824", + "826", + "826.1", + "828", + "830", + "832", + "834", + "836", + "838", + "838.1", + "840", + "842", + "844", + "846", + "848", + "850", + "852", + "854", + "4064", + "4066", + "4068", + "4070", + "4072", + "4074", + "4076", + "4078", + "4080", + "4082", + "4084", + "4086", + "801" + ] + }, + { + "id": "BCT_12", + "provider": "BCT", + "full_name": "12) Conkin Av", + "short_name": "12", + "stops": [ + "1201", + "1203", + "1205", + "1207", + "1209", + "1211", + "1213", + "1215", + "1217", + "1219", + "1221", + "1223", + "1225", + "1227", + "1229", + "1231", + "1233", + "22", + "1" + ] + }, + { + "id": "BCT_15", + "provider": "BCT", + "full_name": "15) Leroy St", + "short_name": "15", + "stops": [ + "1500", + "1502", + "3504", + "1508", + "1510", + "1512", + "1514", + "1516", + "1518", + "1520", + "1522", + "1524", + "1526", + "1528", + "1530", + "1532", + "1534", + "1536", + "1538", + "1540", + "1542", + "1544", + "1546", + "1548", + "1550", + "1552", + "1554", + "1554a", + "1554b", + "1554c", + "1556", + "1558", + "1560", + "1562", + "1564", + "1566", + "6003", + "6002", + "6000" + ] + }, + { + "id": "BCT_16", + "provider": "BCT", + "full_name": "16) BU Express", + "short_name": "16", + "stops": [ + "3504", + "3508", + "3510", + "3512", + "3514", + "3516", + "3518", + "3520", + "3522", + "3524", + "3526", + "1711", + "1713", + "1715", + "1717", + "1552", + "1554", + "1556", + "1558", + "1560", + "6011", + "3502", + "3504" + ] + }, + { + "id": "BCT_17", + "provider": "BCT", + "full_name": "17) Johnson City", + "short_name": "17", + "stops": [ + "748", + "750", + "752", + "754", + "756", + "758", + "760", + "762", + "764", + "766", + "768", + "772", + "776", + "1701", + "1703", + "1705", + "1707", + "3619", + "3621", + "1711", + "1713", + "1715", + "1717", + "1552", + "1554", + "1556", + "1558", + "1560", + "1562", + "4706", + "4708", + "4710", + "4712", + "4714", + "4716", + "1566", + "6003", + "6011" + ] + }, + { + "id": "BCT_28", + "provider": "BCT", + "full_name": "28) Robinson St", + "short_name": "28", + "stops": [ + "2802", + "2804", + "2806", + "2808", + "2810", + "2812", + "2814", + "2816", + "2818", + "2820", + "2822", + "2824", + "2826", + "2828", + "2830", + "2832", + "2834", + "2836", + "2838", + "2844", + "2846", + "2848", + "2850", + "2852", + "2854", + "2856", + "2858", + "2860", + "2862", + "2864", + "2866", + "2868", + "2801", + "2803", + "2805", + "2807", + "2809", + "2811", + "2813", + "2815", + "2817", + "2819", + "2821", + "2823", + "2825", + "2827", + "2829", + "2831", + "2833", + "1" + ] + }, + { + "id": "BCT_35", + "provider": "BCT", + "full_name": "35) Endicott-Binghamton", + "short_name": "35", + "stops": [ + "3500", + "3502", + "3504", + "3508", + "3510", + "3512", + "3514", + "3516", + "3518", + "3520", + "3522", + "3524", + "3526", + "3528", + "3530", + "3534", + "3536", + "3538", + "3540", + "3544", + "3546", + "3550", + "3552", + "3554", + "3556", + "3558", + "3560", + "3562.2", + "3562.1", + "3562", + "3564", + "3566", + "3568", + "3570", + "3572", + "3574", + "3576", + "3602", + "3604", + "3606", + "3608", + "3610", + "3612", + "3614", + "3616", + "3618", + "3620", + "3622", + "3624", + "3626", + "3628", + "3630", + "3630.1", + "3632.1", + "5583", + "5583.1", + "3636", + "3638", + "3642", + "3644", + "3646", + "3648", + "3650", + "3652", + "3654", + "3656", + "3658", + "3501" + ] + }, + { + "id": "BCT_40", + "provider": "BCT", + "full_name": "40) Chenango St", + "short_name": "40", + "stops": [ + "4076", + "4078", + "4080", + "4082", + "4084", + "4086", + "801", + "4003", + "4005", + "4007", + "4009", + "4011", + "4013", + "4015", + "4017", + "4019", + "4021", + "4023", + "4025", + "4027", + "4029", + "4031", + "4033", + "4035", + "4037", + "4039", + "4041", + "4043", + "4045", + "4047", + "4053", + "2831", + "2833", + "1" + ] + }, + { + "id": "BCT_40.8", + "provider": "BCT", + "full_name": ") 40/8 Combo", + "short_name": "", + "stops": [ + "4002", + "2804", + "2806", + "4096", + "4098", + "4010", + "4012", + "4014", + "4016", + "4018", + "4020", + "4022", + "4024", + "818", + "822", + "824", + "826", + "826.1", + "828", + "830", + "832", + "834", + "836", + "838", + "838.1", + "840", + "842", + "844", + "846", + "848", + "850", + "852", + "854", + "801" + ] + }, + { + "id": "BCT_47", + "provider": "BCT", + "full_name": "47) Vestal", + "short_name": "47", + "stops": [ + "5551", + "5553", + "5555", + "5557", + "5559", + "3606", + "3608", + "3610", + "3612", + "5561", + "5563", + "95565", + "95567", + "95569", + "95571", + "5573", + "5575", + "5577", + "5579", + "5581", + "5583", + "3636", + "3638", + "3642", + "3644", + "5585", + "5587", + "5589", + "95591", + "5593", + "4736", + "4701", + "4703", + "4709.1", + "4707.1", + "4705.1", + "4711", + "4713", + "4715", + "4717", + "4719", + "4721", + "4723", + "4725", + "4727", + "4729", + "4731", + "4733", + "4735", + "4737", + "1566", + "6003", + "6002", + "6000" + ] + }, + { + "id": "BCT_48", + "provider": "BCT", + "full_name": "48) Shoppers Express Oakdale Mall", + "short_name": "48", + "stops": [ + "3562.2", + "3562.1", + "3562", + "5714", + "6000" + ] + }, + { + "id": "BCT_51", + "provider": "BCT", + "full_name": "51) K Commuter", + "short_name": "51", + "stops": [ + "5200", + "1204", + "1206", + "1208", + "95114", + "95101", + "95102", + "95103", + "95104", + "95105", + "95106", + "95107", + "95108", + "95109", + "95110" + ] + }, + { + "id": "BCT_53", + "provider": "BCT", + "full_name": "53) Corporate Park", + "short_name": "53", + "stops": [ + "95309", + "95310", + "95310.1", + "95311", + "95311.1", + "95312", + "95312.1", + "95312.2", + "95313", + "95314", + "95314.1", + "95314.2", + "95314.3", + "95315", + "95316", + "95317", + "95318", + "95319", + "95320", + "95103", + "95321", + "95322", + "95323", + "1209", + "1211", + "1213", + "1215", + "1217", + "1219", + "549", + "1" + ] + }, + { + "id": "BCT_57", + "provider": "BCT", + "full_name": "57) Shoppers Special", + "short_name": "57", + "stops": [ + "8802", + "4702", + "5706", + "95799", + "5710", + "4730", + "4734", + "4736", + "5712", + "3562.2", + "3562.1", + "3562", + "5714", + "2301", + "2303", + "2305", + "2307", + "2309", + "2311", + "2313", + "2315", + "2317", + "2319", + "2321", + "2323", + "2325", + "2325.1", + "2327", + "2329", + "5716", + "5718", + "3645", + "1" + ] + }, + { + "id": "BCT_91", + "provider": "BCT", + "full_name": "91) Shoppers Special Express", + "short_name": "91", + "stops": [ + "6000", + "6004", + "5704", + "4702", + "5706", + "95799", + "5710", + "4730", + "4734", + "4736" + ] + }, + { + "id": "BCT_2840", + "provider": "BCT", + "full_name": ") 28/40 Combo", + "short_name": "", + "stops": [ + "2802", + "2804", + "2806", + "2808", + "2810", + "2812", + "2814", + "2816", + "2818", + "2820", + "2822", + "2824", + "2826", + "2828", + "2830", + "2832", + "2834", + "2836", + "2838", + "2844", + "2846", + "2848", + "2850", + "2852", + "2854", + "2856", + "2858", + "2860", + "2862", + "2864", + "2866", + "2868", + "2801", + "2803", + "2805", + "2807", + "2809", + "2811", + "2813", + "2815", + "2817", + "2819", + "2821", + "2823", + "2825", + "2827", + "2829", + "4096", + "4098", + "4010", + "4012", + "4014", + "4016", + "4018", + "4020", + "4022", + "4024", + "4026", + "4028", + "4030", + "4032", + "4034", + "1" + ] + }, + { + "id": "BCT_122840", + "provider": "BCT", + "full_name": ") 12/28/40 Combo", + "short_name": "", + "stops": [ + "1202", + "1204", + "1206", + "1208", + "1210", + "1212", + "1214", + "1216", + "1218", + "1220", + "1222", + "1224", + "1226", + "1228", + "1230", + "1201", + "1203", + "1205", + "1207", + "1209", + "1211", + "1213", + "1215", + "1217", + "1219", + "1221", + "1223", + "1225", + "2812", + "2814", + "2816", + "2818", + "2820", + "2822", + "2824", + "2826", + "2828", + "2830", + "2832", + "2834", + "2836", + "2838", + "2844", + "2846", + "2848", + "2850", + "2852", + "2854", + "2856", + "2858", + "2860", + "2862", + "2864", + "2866", + "2868", + "2801", + "2803", + "2805", + "2807", + "2809", + "2811", + "2813", + "2815", + "2817", + "2819", + "2821", + "2823", + "2825", + "2827", + "2829", + "4096", + "4098", + "4010", + "4012", + "4014", + "4016", + "4018", + "4020", + "4022", + "4024", + "4026", + "4028", + "4030", + "4032", + "4034", + "1" + ] + }, + { + "id": "BCT_1228405", + "provider": "BCT", + "full_name": ") 12/28/40/5 Combo", + "short_name": "", + "stops": [ + "1202", + "2804", + "2806", + "4096", + "4098", + "4010", + "4012", + "4014", + "4016", + "4018", + "4020", + "4022", + "4024", + "4026", + "4028", + "4030", + "4032", + "4034", + "2826", + "2828", + "2830", + "2832", + "2834", + "2836", + "2838", + "2844", + "2846", + "2848", + "2850", + "2852", + "2854", + "2856", + "2858", + "2860", + "2862", + "2864", + "2866", + "2868", + "2801", + "2803", + "2805", + "2807", + "2809", + "2811", + "2813", + "2815", + "2817", + "2819", + "2821", + "2823", + "2825", + "1210", + "1212", + "1214", + "1216", + "1218", + "1220", + "1222", + "1224", + "1226", + "1228", + "1230", + "1201", + "1203", + "1205", + "1207", + "1209", + "1211", + "1213", + "1215", + "1217", + "1219", + "510", + "512", + "514", + "516", + "518", + "520", + "522", + "524", + "526", + "528", + "530", + "532", + "534", + "536", + "538", + "540", + "542", + "544", + "546", + "548", + "550", + "552", + "554", + "556", + "558", + "560", + "562", + "6000" + ] + }, + { + "id": "BCT_12.53", + "provider": "BCT", + "full_name": ") 12/53 Combo", + "short_name": "", + "stops": [ + "1202", + "1204", + "1206", + "1208", + "1210", + "1212", + "1214", + "1216", + "1218", + "1220", + "1222", + "1224", + "1226", + "1228", + "1230", + "1201", + "95301", + "95302", + "95303", + "95304", + "95103", + "95305", + "95306", + "95307", + "95308", + "95309" + ] + }, + { + "id": "BCT_12.3", + "provider": "BCT", + "full_name": ") 12/3 Combo", + "short_name": "", + "stops": [ + "1202", + "1204", + "1206", + "1208", + "1210", + "1212", + "1214", + "1216", + "1218", + "1220", + "1222", + "1224", + "1226", + "1228", + "1230", + "1201", + "1203", + "1205", + "1207", + "1209", + "1211", + "1213", + "1215", + "1217", + "1219", + "510", + "512", + "514", + "516", + "308", + "310", + "312", + "314", + "316", + "318", + "320", + "322", + "324", + "326", + "328", + "301", + "303", + "305", + "307", + "309", + "311", + "313", + "315", + "317", + "319", + "321", + "323", + "535", + "325.1", + "325.2", + "329", + "331", + "553", + "1" + ] + }, + { + "id": "OCCT_1", + "provider": "OCCT", + "full_name": "Westside Outbound", + "short_name": "WS O", + "stops": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "132", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21" + ] + }, + { + "id": "OCCT_2", + "provider": "OCCT", + "full_name": "Westside Inbound", + "short_name": "WS I", + "stops": [ + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "60", + "32", + "118", + "1", + "61" + ] + }, + { + "id": "OCCT_3", + "provider": "OCCT", + "full_name": "Downtown Center Leroy Outbound", + "short_name": "DCL O", + "stops": [ + "1", + "2", + "3", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "40", + "41", + "42" + ] + }, + { + "id": "OCCT_4", + "provider": "OCCT", + "full_name": "Downtown Center Leroy Inbound", + "short_name": "DCL I", + "stops": [ + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", + "31", + "32", + "118", + "61", + "1" + ] + }, + { + "id": "OCCT_5", + "provider": "OCCT", + "full_name": "UCLUB", + "short_name": "UC", + "stops": [ + "61", + "63", + "64", + "65", + "66", + "67", + "68", + "69", + "134", + "1" + ] + }, + { + "id": "OCCT_8", + "provider": "OCCT", + "full_name": "Campus Shuttle", + "short_name": "CS", + "stops": [ + "61", + "117", + "62", + "63", + "64", + "65", + "110", + "111", + "112", + "113", + "114", + "115", + "116", + "1" + ] + }, + { + "id": "OCCT_9", + "provider": "OCCT", + "full_name": "Riviera Ridge - Town Square Mall", + "short_name": "RRT", + "stops": [ + "118", + "2", + "3", + "119", + "120", + "121", + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "32", + "61", + "1" + ] + }, + { + "id": "OCCT_10", + "provider": "OCCT", + "full_name": "Oakdale Commons", + "short_name": "OC", + "stops": [ + "118", + "2", + "3", + "129", + "130", + "32", + "61", + "1" + ] + }, + { + "id": "OCCT_12", + "provider": "OCCT", + "full_name": "University Downtown Center Outbound", + "short_name": "UDC O", + "stops": [ + "1", + "21", + "42" + ] + }, + { + "id": "OCCT_13", + "provider": "OCCT", + "full_name": "University Downtown Center Inbound", + "short_name": "UDC I", + "stops": [ + "21", + "32", + "118", + "1", + "61" + ] + }, + { + "id": "OCCT_14", + "provider": "OCCT", + "full_name": "Main Street Outbound", + "short_name": "MS O", + "stops": [ + "1", + "2", + "3", + "70", + "71", + "72", + "73", + "74", + "75", + "76", + "77", + "155", + "78", + "12", + "132", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "21" + ] + }, + { + "id": "OCCT_15", + "provider": "OCCT", + "full_name": "Main Street Inbound", + "short_name": "MS I", + "stops": [ + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "79", + "155", + "80", + "81", + "82", + "83", + "84", + "85", + "32", + "61", + "1" + ] + }, + { + "id": "OCCT_16", + "provider": "OCCT", + "full_name": "ITC - UCLUB", + "short_name": "IU", + "stops": [ + "61", + "63", + "64", + "65", + "109", + "66", + "67", + "68", + "134", + "69" + ] + }, + { + "id": "OCCT_17", + "provider": "OCCT", + "full_name": "Downtown Southside Outbound", + "short_name": "DSO", + "stops": [ + "136", + "137", + "1", + "138", + "139", + "140", + "141", + "142", + "143", + "144", + "145", + "146", + "147", + "148", + "154", + "150", + "151", + "153", + "21" + ] + } +] \ No newline at end of file diff --git a/src/shared/analysis_options.yaml b/src/shared/analysis_options.yaml deleted file mode 100644 index 0abb6fe..0000000 --- a/src/shared/analysis_options.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. See the following for docs: -# https://dart.dev/guides/language/analysis-options -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. -include: package:very_good_analysis/analysis_options.yaml # has more lints - -analyzer: - language: - # Strict casts isn't helpful with null safety. It only notifies you on `dynamic`, - # which happens all the time in JSON. - # - # See https://github.com/dart-lang/language/blob/main/resources/type-system/strict-casts.md - strict-casts: false - - # Don't let any types be inferred as `dynamic`. - # - # See https://github.com/dart-lang/language/blob/main/resources/type-system/strict-inference.md - strict-inference: true - - # Don't let Dart infer the wrong type on the left side of an assignment. - # - # See https://github.com/dart-lang/language/blob/main/resources/type-system/strict-raw-types.md - strict-raw-types: true - - exclude: - - lib/generated/**.dart - - test/**.dart - - example/**.dart - -linter: - rules: - # Rules NOT in package:very_good_analysis - prefer_double_quotes: true - prefer_expression_function_bodies: true - - # Rules to be disabled from package:very_good_analysis - prefer_single_quotes: false # prefer_double_quotes - lines_longer_than_80_chars: false # lines should be at most 100 chars - sort_pub_dependencies: false # Sort dependencies by function - use_key_in_widget_constructors: false # not in Flutter apps - directives_ordering: false # sort dart, then flutter, then package imports - always_use_package_imports: false # not when importing sibling files - sort_constructors_first: false # final properties, then constructor - avoid_dynamic_calls: false # this lint takes over errors in the IDE - one_member_abstracts: false # abstract classes are good for interfaces - cascade_invocations: false # cascades are often harder to read - - # Temporarily disabled until we are ready to document - public_member_api_docs: false diff --git a/src/shared/bin/data.dart b/src/shared/bin/data.dart index 31f471f..f82e51c 100644 --- a/src/shared/bin/data.dart +++ b/src/shared/bin/data.dart @@ -1,6 +1,6 @@ import "package:shared/generator.dart"; void main() async { - final stops = StopGenerator(); - await stops.generate(); + await Generator.stops.generate(); + await Generator.routes.generate(); } diff --git a/src/shared/bin/path.dart b/src/shared/bin/path.dart new file mode 100644 index 0000000..4784eb3 --- /dev/null +++ b/src/shared/bin/path.dart @@ -0,0 +1,147 @@ +// User-facing script +// ignore_for_file: avoid_print + +import "package:a_star/a_star.dart"; +import "package:shared/generator.dart"; +import "package:shared/graph.dart"; + +import "package:shelf_router/shelf_router.dart"; +import "package:shelf/shelf.dart"; +import "package:shelf/shelf_io.dart" as io; + +// const startLat = 42.0924949645996; +// const startLong = -75.9538421630859; +// const endLat = 42.0869369506836; +// const endLong = -75.965934753418; + +const startLat = 42.092083; +const startLong = -75.952271; +const endLat = 42.080822; +const endLong = -75.912529; + +const numStops = 5; + +void log(String message) { + // print(message); +} + +Iterable findStopsNear(Coordinates location) { + log("Finding stops near $location..."); + final stopDistances = [ + for (final stop in StopState.stops.values) + (stop, stop.coordinates.distanceTo(location)), + ]; + stopDistances.sort((a, b) => a.$2.compareTo(b.$2)); + return stopDistances.take(numStops).map((pair) => pair.$1); +} + +void printStops(Iterable stops) { + log("Found stops:"); + for (final stop in stops) { + log("- ${stop.routes}, ${stop.name}"); + } +} + +Set findRoutes(Iterable stops) => { + for (final stop in stops) + ...stop.routeIDs, +}; + +Stop findStopWithRoute(Iterable stops, RouteID route) => + stops.firstWhere((stop) => stop.routeIDs.contains(route)); + +Future init() async { + print("Initializing..."); + final stops = await Generator.stops.parse(); + final routes = await Generator.routes.parse(); + StopState.init(routes, stops); +} + +final headers = { + "Access-Control-Allow-Origin": "*", +}; + +Future handleRequest(Request request) async { + final startLat = double.tryParse(request.url.queryParameters["start_lat"] ?? ""); + final startLong = double.tryParse(request.url.queryParameters["start_lon"] ?? ""); + final endLat = double.tryParse(request.url.queryParameters["end_lat"] ?? ""); + final endLong = double.tryParse(request.url.queryParameters["end_lon"] ?? ""); + if (startLat == null || startLong == null || endLat == null || endLong == null) { + return Response.badRequest(body: "Could not parse coordinates", headers: headers); + } + + final start = (lat: startLat, long: startLong); + final end = (lat: endLat, long: endLong); + + // 1) Find [numStops] nearest stops by the given locations + log("Finding nearest stops..."); + final startStops = findStopsNear(start); + printStops(startStops); + final endStops = findStopsNear(end); + printStops(endStops); + + // 2) Find all routes by those stops + log("Finding intersecting routes"); + final startRoutes = findRoutes(startStops); + final endRoutes = findRoutes(endStops); + log("Start routes: $startRoutes"); + log("End routes: $endRoutes"); + + // 3) Check for a direct route without transfers + final routesInCommon = startRoutes.intersection(endRoutes); + if (routesInCommon.isNotEmpty) { + final route = routesInCommon.first; + final startStop = findStopWithRoute(startStops, route); + final endStop = findStopWithRoute(endStops, route); + return Response.ok("\nBoard the $route at ${startStop.name} and get off at ${endStop.name}", headers: headers); + } + + // 4) Use A* to find a route with transfers + log("Using A*"); + final paths = >[]; + for (final startStop in startStops) { + for (final startRoute in startStop.routeIDs) { + for (final endStop in endStops) { + final state = StopState(stopID: startStop.id, goalID: endStop.id, routeID: startRoute, depth: 0); + log("Finding a route using ${state.hash()}"); + final result = aStar(state); + if (result == null) continue; + paths.add(result.reconstructPath()); + } + } + } + + if (paths.isEmpty) { + return Response.ok("No routes found", headers: headers); + } + + final minPath = paths.min((path) => path.length); + final buffer = StringBuffer(); + buffer.writeln("Found ${paths.length} paths, here's the best one with only ${minPath.length} steps:"); + StopState? prevStep; + var index = 0; + for (final step in minPath) { + index++; + final stop = StopState.stops[step.stopID]!; + final route = StopState.routes[step.routeID]!; + if (prevStep == null) { + buffer.writeln("$index. Board the ${route.provider.humanName} ${route.fullName} bus\n at ${stop.name}"); + } else if (index == minPath.length) { + buffer.writeln("$index. Get off at ${stop.name}"); + } else if (prevStep.routeID != step.routeID) { + buffer.writeln("$index. Transfer to the ${route.provider.humanName} ${route.fullName}"); + } else { + buffer.writeln("$index. Go to ${stop.name}"); + } + prevStep = step; + } + return Response.ok(buffer.toString(), headers: headers); +} + +void main() async { + await init(); + final router = Router(); + router.get("/path", handleRequest); + await io.serve(router.call, "localhost", 8001); + print("Listening on localhost:8001"); +} diff --git a/src/shared/lib/data.dart b/src/shared/lib/data.dart index 5b770b7..5ed0449 100644 --- a/src/shared/lib/data.dart +++ b/src/shared/lib/data.dart @@ -1,2 +1,4 @@ -export "src/utils.dart"; -export "src/stops/stop.dart"; +export "src/data/provider.dart"; +export "src/data/route.dart"; +export "src/data/stop.dart"; +export "src/data/utils.dart"; diff --git a/src/shared/lib/generator.dart b/src/shared/lib/generator.dart index af390ab..c4bda86 100644 --- a/src/shared/lib/generator.dart +++ b/src/shared/lib/generator.dart @@ -1,2 +1,6 @@ -export "src/generator_utils.dart"; -export "src/stops/generator.dart"; +export "src/generator/generator.dart"; +export "src/generator/routes_bc.dart"; +export "src/generator/routes_occt.dart"; +export "src/generator/stops_bc.dart"; +export "src/generator/stops_occt.dart"; +export "src/generator/utils.dart"; diff --git a/src/shared/lib/graph.dart b/src/shared/lib/graph.dart new file mode 100644 index 0000000..345cfc5 --- /dev/null +++ b/src/shared/lib/graph.dart @@ -0,0 +1 @@ +export "src/graph/state.dart"; diff --git a/src/shared/lib/shared.dart b/src/shared/lib/shared.dart deleted file mode 100644 index 26d4c09..0000000 --- a/src/shared/lib/shared.dart +++ /dev/null @@ -1,2 +0,0 @@ -export "src/stops/stop.dart"; -export "src/utils.dart"; diff --git a/src/shared/lib/src/data/provider.dart b/src/shared/lib/src/data/provider.dart new file mode 100644 index 0000000..8a1aa95 --- /dev/null +++ b/src/shared/lib/src/data/provider.dart @@ -0,0 +1,11 @@ +enum Provider { + bc("BCT", "BC Transit"), + occt("OCCT", "OCC Transport"); + + const Provider(this.id, this.humanName); + + factory Provider.fromJson(String json) => values.firstWhere((value) => value.id == json); + + final String id; + final String humanName; +} diff --git a/src/shared/lib/src/data/route.dart b/src/shared/lib/src/data/route.dart new file mode 100644 index 0000000..254f4b4 --- /dev/null +++ b/src/shared/lib/src/data/route.dart @@ -0,0 +1,55 @@ +import "provider.dart"; +import "stop.dart"; +import "utils.dart"; + +extension type RouteID._(String id) { + RouteID(Provider provider, Object json) : + id = "${provider.id}_$json"; + + RouteID.fromJson(dynamic json) : id = json.toString(); + factory RouteID.fromBcCsv(CsvRow csv) => RouteID(Provider.bc, csv[0]); + + RouteID withDirection(String direction) => RouteID._("${id}_$direction"); +} + +class Route with Encodable { + final RouteID id; + final Provider provider; + final String fullName; + final String shortName; + final List stops; + + const Route({ + required this.id, + required this.provider, + required this.stops, + required this.fullName, + required this.shortName, + }); + + Route.fromOcctJson(Json json) : + id = RouteID(Provider.occt, json["id"]), + provider = Provider.occt, + shortName = json["abbr"], + fullName = json["name"], + stops = [ + for (final stopID in (json["stops"] as List).cast()) + StopID(stopID.toString()), + ]; + + Route.fromBcCsv(CsvRow csv) : + id = RouteID.fromBcCsv(csv), + provider = Provider.bc, + shortName = csv[2], + fullName = "${csv[2]}) ${csv[3]}", + stops = []; + + @override + Json toJson() => { + "id": id, + "provider": provider.id, + "full_name": fullName, + "short_name": shortName, + "stops": stops, + }; +} diff --git a/src/shared/lib/src/stops/stop.dart b/src/shared/lib/src/data/stop.dart similarity index 64% rename from src/shared/lib/src/stops/stop.dart rename to src/shared/lib/src/data/stop.dart index b1a823f..e8f480f 100644 --- a/src/shared/lib/src/stops/stop.dart +++ b/src/shared/lib/src/data/stop.dart @@ -1,16 +1,19 @@ -import "../utils.dart"; +import "utils.dart"; +import "route.dart"; +import "provider.dart"; extension type StopID(String id) { StopID.fromJson(dynamic value) : id = value.toString(); } -class Stop { +class Stop with Encodable { final StopID id; final String name; final String? description; final Coordinates coordinates; - final String provider; + final Provider provider; final Set routes; + final Set routeIDs; Stop({ required this.id, @@ -18,32 +21,39 @@ class Stop { required this.description, required this.coordinates, required this.provider, - }) : routes = {}; + }) : routes = {}, routeIDs = {}; Stop.fromJson(Json json) : id = StopID(json["id"]), name = json["name"], description = json["description"], coordinates = (lat: json["latitude"], long: json["longitude"]), - provider = json["provider"], - routes = (json["routes"] as List).cast().toSet(); + provider = Provider.fromJson(json["provider"]), + routes = (json["routes"] as List).cast().toSet(), + routeIDs = { + for (final routeID in (json["route_ids"] as List)) + RouteID.fromJson(routeID), + }; Stop.fromOcctJson(Json json) : id = StopID.fromJson(json["id"]), name = json["name"], description = null, coordinates = (lat: json["lat"], long: json["lng"]), - provider = "OCCT", - routes = {}; + provider = Provider.occt, + routes = {}, + routeIDs = {}; + @override Map toJson() => { "id": id.id, "name": name, "description": description, "latitude": coordinates.lat, "longitude": coordinates.long, - "provider": provider, + "provider": provider.id, "routes": routes.toList(), + "route_ids": routeIDs.toList(), }; String get summary { @@ -57,4 +67,9 @@ class Stop { } return buffer.toString(); } + + void addRoute(RouteID id, String name) { + routeIDs.add(id); + routes.add(name); + } } diff --git a/src/shared/lib/src/utils.dart b/src/shared/lib/src/data/utils.dart similarity index 62% rename from src/shared/lib/src/utils.dart rename to src/shared/lib/src/data/utils.dart index 9734124..6d0b16c 100644 --- a/src/shared/lib/src/utils.dart +++ b/src/shared/lib/src/data/utils.dart @@ -1,10 +1,18 @@ -/// A JSON object +import "dart:math"; + typedef Json = Map; - +typedef CsvRow = List; typedef FromJson = T Function(Json); - typedef Coordinates = ({double lat, double long}); +mixin Encodable { + Json toJson(); +} + +extension CoordinateUtils on Coordinates { + double distanceTo(Coordinates other) => sqrt(pow(lat - other.lat, 2) + pow(long - other.long, 2)); +} + /// Utils on [Map]. extension MapUtils on Map { /// Gets all the keys and values as 2-element records. @@ -27,4 +35,16 @@ extension ListUtils on List { yield (i, this[i]); } } + + E max(int Function(E) count) => reduce((a, b) { + final numA = count(a); + final numB = count(b); + return numA > numB ? a : b; + }); + + E min(int Function(E) count) => reduce((a, b) { + final numA = count(a); + final numB = count(b); + return numA < numB ? a : b; + }); } diff --git a/src/shared/lib/src/generator/generator.dart b/src/shared/lib/src/generator/generator.dart new file mode 100644 index 0000000..ddeccac --- /dev/null +++ b/src/shared/lib/src/generator/generator.dart @@ -0,0 +1,44 @@ +import "dart:convert"; +import "dart:io"; + +import "package:shared/generator.dart"; + +class Generator extends Parser { + final Parser bc; + final Parser occt; + final File outputFile; + + Generator({ + required this.bc, + required this.occt, + required this.outputFile, + }); + + @override + Future> parse() async => [ + ...await bc.parse(), + ...await occt.parse(), + ]; + + Future generate() async { + final result = [ + for (final data in await parse()) + data.toJson(), + ]; + const encoder = JsonEncoder.withIndent(" "); + final contents = encoder.convert(result); + await outputFile.writeAsString(contents); + } + + static final stops = Generator( + bc: BcStopParser(), + occt: OcctStopParser(), + outputFile: File(serverDir / "GET_STOPS.json"), + ); + + static final routes = Generator( + bc: BcRoutesParser(), + occt: OcctRoutesParser(), + outputFile: File(serverDir / "GET_routes.json"), + ); +} diff --git a/src/shared/lib/src/generator/routes_bc.dart b/src/shared/lib/src/generator/routes_bc.dart new file mode 100644 index 0000000..7c7d183 --- /dev/null +++ b/src/shared/lib/src/generator/routes_bc.dart @@ -0,0 +1,46 @@ +import "dart:io"; + +import "utils.dart"; +import "stops_bc.dart"; + +typedef InOutTrips = (TripID, TripID); + +class BcRoutesParser extends Parser { + final routesFile = File(bcDataDir / "routes.txt"); + final tripsFile = File(bcDataDir / "trips.txt"); + + final stopParser = BcStopParser(); + + Future> getRoutes() async => { + for (final csv in await readCsv(routesFile)) + RouteID.fromBcCsv(csv): Route.fromBcCsv(csv), + }; + + Future> getTripForRoutes(Map> trips) async { + final tripsForRoutes = >{}; + for (final row in await readCsv(tripsFile)) { + final routeID = RouteID(Provider.bc, row[0]); + final trip = TripID(row[2]); + // print(trip); + tripsForRoutes.addToList(routeID, trip); + } + return { + for (final (routeID, tripsForRoute) in tripsForRoutes.records) + routeID: tripsForRoute.max((trip) => trips[trip]!.length), + }; + } + + @override + Future> parse() async { + final routes = await getRoutes(); + final trips = await stopParser.getTrips(); + final tripsForRoutes = await getTripForRoutes(trips); + + for (final (routeID, route) in routes.records) { + final longestTrip = tripsForRoutes[routeID]!; + final stops = trips[longestTrip]!; + route.stops.addAll(stops); + } + return routes.values; + } +} diff --git a/src/shared/lib/src/generator/routes_occt.dart b/src/shared/lib/src/generator/routes_occt.dart new file mode 100644 index 0000000..0a82842 --- /dev/null +++ b/src/shared/lib/src/generator/routes_occt.dart @@ -0,0 +1,13 @@ +import "dart:io"; + +import "utils.dart"; + +class OcctRoutesParser extends Parser { + final routesFile = File(occtDataDir / "routes.json"); + + @override + Future> parse() async => [ + for (final routeJson in await readJson(routesFile)) + Route.fromOcctJson(routeJson), + ]; +} diff --git a/src/shared/lib/src/stops/bc.dart b/src/shared/lib/src/generator/stops_bc.dart similarity index 83% rename from src/shared/lib/src/stops/bc.dart rename to src/shared/lib/src/generator/stops_bc.dart index 55da612..adbb0f1 100644 --- a/src/shared/lib/src/stops/bc.dart +++ b/src/shared/lib/src/generator/stops_bc.dart @@ -2,7 +2,7 @@ import "dart:io"; import "package:csv/csv.dart"; -import "../generator_utils.dart"; +import "utils.dart"; class BcStopParser extends Parser { static final tripsFile = File(bcDataDir / "stop_times.txt"); @@ -12,23 +12,23 @@ class BcStopParser extends Parser { static final converter = CsvCodec(shouldParseNumbers: false).decoder; - Future>> getTrips() async { - final result = >{}; + Future>> getTrips() async { + final result = >{}; for (final row in await readCsv(tripsFile)) { - result.addToSet(TripID(row[0]), StopID(row[3])); + result.addToList(TripID(row[0]), StopID(row[3])); } return result; } Future> getRoutes() async => { for (final row in await readCsv(routesFile)) - TripID(row[2]): RouteID(row[0]), + TripID(row[2]): RouteID(Provider.bc, row[0]), }; Future> getRouteNames() async => { for (final row in await readCsv(routeNamesFile)) if (row[2].isNotEmpty) - RouteID(row[0]): "${row[2]}) ${row[3]}", + RouteID(Provider.bc, row[0]): "${row[2]}) ${row[3]}", }; Future> getStops() async { @@ -44,7 +44,7 @@ class BcStopParser extends Parser { name: name, description: description, coordinates: (lat: latitude, long: longitude), - provider: "BC Transit", + provider: Provider.bc, ); result[stopID] = stop; } @@ -53,7 +53,7 @@ class BcStopParser extends Parser { void findRoutesForStops({ required Iterable stops, - required Map> trips, + required Map> trips, required Map routes, required Map routeNames, }) { @@ -63,7 +63,7 @@ class BcStopParser extends Parser { final routeID = routes[tripID]!; final routeName = routeNames[routeID]; if (routeName == null) continue; // old route - stop.routes.add(routeName); + stop.addRoute(routeID, routeName); } } } diff --git a/src/shared/lib/src/stops/occt.dart b/src/shared/lib/src/generator/stops_occt.dart similarity index 85% rename from src/shared/lib/src/stops/occt.dart rename to src/shared/lib/src/generator/stops_occt.dart index eaf3bb0..72c0bf8 100644 --- a/src/shared/lib/src/stops/occt.dart +++ b/src/shared/lib/src/generator/stops_occt.dart @@ -1,6 +1,6 @@ import "dart:io"; -import "../generator_utils.dart"; +import "utils.dart"; class OcctStopParser extends Parser { /// Taken from: https://binghamtonupublic.etaspot.net/service.php?service=get_stops&token=TESTING @@ -22,7 +22,7 @@ class OcctStopParser extends Parser { final result = >{}; for (final json in await readJson(stopsFile)) { final stopID = StopID.fromJson(json["id"]); - final routeID = RouteID.fromJson(json["rid"]); + final routeID = RouteID(Provider.occt, json["rid"]); result.addToList(stopID, routeID); } return result; @@ -30,7 +30,7 @@ class OcctStopParser extends Parser { Future> getRouteNames() async => { for (final json in await readJson(routesFile)) - RouteID.fromJson(json["id"]): json["name"], + RouteID(Provider.occt, json["id"]): json["name"], }; @override @@ -38,12 +38,12 @@ class OcctStopParser extends Parser { final stops = await getStops(); final routes = await getRoutes(); final routeNames = await getRouteNames(); - final routesToSkip = {RouteID("11")}; // no longer used + final routesToSkip = {RouteID(Provider.occt, "11")}; for (final (stopID, stop) in stops.records) { for (final routeID in routes[stopID]!) { if (routesToSkip.contains(routeID)) continue; final routeName = routeNames[routeID]!; - stop.routes.add(routeName); + stop.addRoute(routeID, routeName); } } return stops.values; diff --git a/src/shared/lib/src/generator_utils.dart b/src/shared/lib/src/generator/utils.dart similarity index 90% rename from src/shared/lib/src/generator_utils.dart rename to src/shared/lib/src/generator/utils.dart index 7bd1a92..88da78d 100644 --- a/src/shared/lib/src/generator_utils.dart +++ b/src/shared/lib/src/generator/utils.dart @@ -9,12 +9,6 @@ extension type TripID(String id) { TripID.fromJson(dynamic value) : id = value.toString(); } -extension type RouteID(String id) { - RouteID.fromJson(dynamic value) : id = value.toString(); -} - -typedef CsvRow = List; - extension DirectoryUtils on Directory { String operator /(String child) => "$path/$child"; } diff --git a/src/shared/lib/src/graph/state.dart b/src/shared/lib/src/graph/state.dart new file mode 100644 index 0000000..60a817c --- /dev/null +++ b/src/shared/lib/src/graph/state.dart @@ -0,0 +1,73 @@ +import "package:a_star/a_star.dart"; +import "package:shared/data.dart"; + +class StopState extends AStarState { + static late final Map routes; + static late final Map stops; + + static void init(Iterable allRoutes, Iterable allStops) { + routes = { + for (final route in allRoutes) + route.id: route, + }; + stops = { + for (final stop in allStops) + stop.id: stop, + }; + } + + final StopID stopID; + final StopID goalID; + final RouteID routeID; + StopState({ + required this.stopID, + required this.goalID, + required this.routeID, + required super.depth, + }); + + @override + String hash() => "$stopID-$goalID-$routeID"; + + @override + bool isGoal() => stopID == goalID; + + @override + double heuristic() { + final stop = stops[stopID]!; + final goal = stops[goalID]!; + return stop.coordinates.distanceTo(goal.coordinates); + } + + @override + Iterable expand() { + final route = routes[routeID]!; + final stop = stops[stopID]!; + final stopIndex = route.stops.indexOf(stopID); + final result = []; + + // 1): Go forward one stop on the same route + final nextIndex = stopIndex + 1; + if (nextIndex < route.stops.length) { + final nextStop = route.stops[nextIndex]; + final state = StopState(stopID: nextStop, goalID: goalID, routeID: routeID, depth: depth + 1); + result.add(state); + } + + // 2) Go back one stop on the same route + final prevIndex = stopIndex - 1; + if (prevIndex > 0) { + final prevStop = route.stops[prevIndex]; + final state = StopState(stopID: prevStop, goalID: goalID, routeID: routeID, depth: depth + 1); + result.add(state); + } + + // 3) Make any available transfers + for (final otherRoute in stop.routeIDs.difference({routeID})) { + final state = StopState(stopID: stopID, goalID: goalID, routeID: otherRoute, depth: depth + 1); + result.add(state); + } + + return result; + } +} diff --git a/src/shared/lib/src/stops/generator.dart b/src/shared/lib/src/stops/generator.dart deleted file mode 100644 index 1240b46..0000000 --- a/src/shared/lib/src/stops/generator.dart +++ /dev/null @@ -1,28 +0,0 @@ -import "dart:convert"; -import "dart:io"; - -import "../generator_utils.dart"; - -import "bc.dart"; -import "occt.dart"; - -class StopGenerator { - static final serverDir = Directory("../server"); - static final outputFile = File(serverDir / "GET_STOPS.json"); - - final Parser bc = BcStopParser(); - final Parser occt = OcctStopParser(); - - Future generate() async { - final bcStops = await bc.parse(); - final occtStops = await occt.parse(); - final stops = [...bcStops, ...occtStops]; - final result = [ - for (final stop in stops) - stop.toJson(), - ]; - const encoder = JsonEncoder.withIndent(" "); - final contents = encoder.convert(result); - await outputFile.writeAsString(contents); - } -} diff --git a/src/shared/pubspec.yaml b/src/shared/pubspec.yaml index f795b04..36ecc47 100644 --- a/src/shared/pubspec.yaml +++ b/src/shared/pubspec.yaml @@ -6,9 +6,14 @@ version: 1.0.0 environment: sdk: ^3.7.0 +resolution: workspace + # Add regular dependencies here. dependencies: csv: ^6.0.0 + a_star: ^3.0.1 + shelf: ^1.4.2 + shelf_router: ^1.1.4 # path: ^1.8.0 dev_dependencies: