Ingests a static GTFS feed and outputs useful geoJSON files. It supports excluding stops by transit agency.
transit-service-area.json
: A polygon that defines the area within which transit data is known.route-line-lookup.json
: Dictionaries used at runtime bybikehopper-web-app
.- routeTripShapeLookup: This is a two-level dictionary Level1 : Key is a route-id, Value is the 2nd Level dictionary Level 2: Key is a trip-id, Value is a shape-id
- shapeIdLineStringLookup: Key is the shape-id of a route, and the value is a LineString of the entire route
- tripIdStopIdsLookup: Key is a trip-id, and value is an array of stop-ids for that trip
/route-tiles
: A{z}/{x}/{y}
VectorTile tileset that contains LineStrings for all the routes in the GTFS feed
"vector_layers": [
{
"id": "route-lines",
"description": "",
"minzoom": 7,
"maxzoom": 14,
"fields": {
"route_color": "String",
"route_id": "String",
"route_text_color": "String",
"trip_ids": "String"
}
}
],
/stop-tiles
: A{z}/{x}/{y}
VectorTile tileset that contains the Points of all the Stops in the GTFS feed
"vector_layers": [
{
"id": "stops",
"description": "",
"minzoom": 8,
"maxzoom": 14,
"fields": {
// Encoding the types of modalities at the stop
// Keys are taken from https://gtfs.org/documentation/schedule/reference/#routestxt
"tram": "Boolean",
"subway": "Boolean",
"rail": "Boolean",
"bus": "Boolean",
"ferry": "Boolean",
"cable": "Boolean",
"aerial": "Boolean",
"funicular": "Boolean",
"trolleybus": "Boolean",
"monorail": "Boolean",
"stop_id": "String",
"stop_name": "String",
}
}
],
Clone this repo, set values in a .env
file, then run docker compose up
.
- Clone this repo
- Run
cp .env.example .env
. FillFILTERED_AGENCY_IDS
andMANUALLY_FILTERED_ROUTE_IDS
with a comma seprated list of agency IDs you'd like to exclude. You can leave these blank if you dont know. - Run
docker compose up
, if it exists succesfully check./volumes/output
for JSON.