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_IDSandMANUALLY_FILTERED_ROUTE_IDSwith 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/outputfor JSON.