Skip to content

ioTransit/simple-transit-map

Repository files navigation

Simple Transit Map

Simple Transit Map is a way for transit agencies to generate simple to use transit maps that stay up to date with their GTFS. This common data set is made up of zipped csv files that show the agency(ies) schedules, but do not have geojson currently supported in the specification. In order for transit agencies to communicate in the 21st century agencies need to show off their routes in simple online maps.

That is where Simple Transit Map Steps in. Through preconfigured Github actions it will pull down the gtfs(s) of your choosing and create geojson that will automatically get updated at the interval of your choosing using a chron schedule.

At this moment Simple Transit Map is to be used for Transit agencies that just want a simple way to show and maintain their routes and is not trying to make it routable. This is a simple visualization of where routes go and the daily footprint of their route alignment. Because of this simplicity it is extremely easy to setup, but in order to extend the work of this repo additional work will need to be done.

Simple Transit Map

Development

To work with simple transit map you need to be able to provide 2 items to the .env the Mapbox API key and the GTFS url that you are working with. You can simply copy the .example.env and rename it .env and add in your values to it. Then to start development you will need to run npm run dev and that will start the development server for the application

Flex Areas

If you want to add flex areas to the map you just have to add a geojson file to the /public directory and name it flex-areas.geojson and that will add the geometry to the map. Currently this will support polygons and multipolygons only.

Styling: In order for you to style your flex areas you are going to need to setup a style in geojson.io and click the Add Simple Style button. You can then configure the fill outline color and opacity and those styles will be applied to the map when loaded.

Route Colors When it comes to route colors these will need to be setup in the GTFS routes.txt file itself under the route_color field as a hex color.

Add Simple Style

Required Fields: name: The name of the area that you want it assigned in the left panel

Working with GeoJson.io

Configuring the update frequency

Github Schedule Actions Crontab interval tool

Deployment

Once you have finished testing and styling your map you are going to need to setup a hosting solution. This code base was designed to be depolyed through Github and using in cooperation with Github actions for easy updates to the schedule information, but this can be hosted on its own server, however, you will need to configure a way to update the schedules on your own using the npm run gtfs command on a predetermined schedule using some interface or cron scheduler.

If you end up using Github as a means of deployment and want it to manage the schedule updates for you. You will need to migrate over the .env values that you want to use in your Github actions. The instructions for this can be found below.

On Merge: This repo has an action that will update on merge so if anything is changed and then merged into the main branch that will trigger and update to the production release. This action can be configured wit hthe deploy.yml file in the workflows directory.

On Schedule: By default this schedule will be updated on 2am every Monday and released after procesing.

Mapbox Keys It is recommended that you have seperate keys for both development and production so in cased you have to delete that key you have been using on development you will not lose your production environment.

Hosting: Vercel Github Pages

Managing secrets in Github Create Github Actions Secrets

Generating a Map Key