People often come to Steven Can Plan looking for GIS shapefiles representing transit, cities, bikeways, roads, etc… On this page I offer for download my own conversion of Chicago Transit Authority (CTA) geographic data.

To be able to offer you this information, I converted the CTA’s General Transit Feed Specification (GTFS) data from its website into shapefiles. Read this tutorial on how to convert GTFS to shapefiles – with my tutorial, you can make your own shapefiles from the GTFS data of any transit agency in the world. Download data from the GTFS Data Exchange, including data from BART (Bay Area, California) and WMATA (Washington, D.C.).

Bus route shapefiles

I have not verified these for accuracy (that would be a chore!). I obtained these from various sources. I recommend you stick with the GTFS data below. At least with this data, you can make some sort of history of service.

Bus and rail shapefiles

The Chicago Transit Authority doesn’t provide GIS data in shapefile format, but they provide GTFS, the next best thing. Download the CTA’s GTFS data at the Developer Center. The CTA will always have the most current version, which is probably updated no more than four times per year (only when service changes).

I’ve converted their GTFS data to shapefile and KML format for you to download.

  • Complete package:
  • Individual packages coming soon.
  • Data current as of October 10, 2010
  • Data projected in NAD83 Illinois East (feet US), EPSG 3435 (the most common and appropriate for Chicago data)

National transit data from the Bureau of Transportation Statistics’s National Transportation Atlas.

Data descriptions

Taken straight from readme_metadata.txt inside the ZIP file:

Prepared by Steven Vance from the Chicago Transit Authority’s GTFS data downloaded on October 10, 2010, from

Uploaded to on October 11, 2010

Email with questions.

Each folder contains a shapefile and its complementary files (prj, shx, dbf, etc…). Each folder also includes a KML file for the data. Filenames within folders may not match folder name.

Folder listing

  • CTA_all_stops
  • CTA_bus_lines
  • CTA_bus_stops
  • CTA_bus_train_lines
  • CTA_train_lines
  • CTA_train_stations


Adapted from the stops.txt file in GTFS data.


  • stop_id – Numeric, the unique stop ID
  • stop_code – Numeric, the unique stop code (all train stations have 0)
  • stop_name – Text, the local name for stop
  • stop_type – Numeric, 1 for ‘L’, 3 for bus

CTA_bus_lines (similar to CTA_bus_train_lines)

Adapted from shapes.txt and routes.txt

Fields: (137 records)

  • route_type – Numeric, Same as stop_type in CTA_all_stops – 1 for ‘L’, 3 for bus (all are bus)
  • route_id – Text, CTA’s assigned bus route number
  • route_name – Text, CTA’s assigned bus route name (as seen on bus heading)
  • route_url – Text, URL to CTA website for details on the route
  • length – Numeric, GIS calculated length of the line (for both line directions, roundtrip)

CTA_bus_stops (similar to CTA_all_stops)

Adapted from stops.txt

Fields: (11,779 records)

  • stop_id – Numeric, the unique stop ID
  • stop_name – Text, the local name for stop (usually a street intersection or street address)


Same fields as CTA_bus_lines except adds train lines.

145 records


Adapted from shapes.txt and routes.txt

Same fields as CTA_bus_lines except only train lines.

8 records

CTA_train_stations (cta_train_stations.shp)

Adapted from stops.txt

Fields: (144 features)

  • stop_name – Text, the local name for train station

CTA_train_stations (cta_train_stations_stopid.shp)

Adapted from stops.txt

Fields: (433 features)

  • stop_id – Numeric, the unique stop ID (Same as in CTA_all_stops)
  • stop_name – Text, the local name for the train station

Note: There are 3 records per station and other seeming inconsistencies. For example, there are two distinct Roosevelt stations (one elevated, one subway), but a third Roosevelt record exists. I have not compared this third station’s stop_id with any other table to see how it’s used in the full dataset.


All data that you can download from any property is at your own risk. Downloaders agree to indemnify and hold harmless Steven Vance and its contributors against loss or threatened loss or expense by reason of the liability or potential liability of the downloader for or arising out of any claims for damages.

If you encounter an error in my data, please email me. If you an encounter an error with CTA data you’ve downloaded, you can alert me to the error, but you should email the CTA.