Transitopia is a mapping project that aims to provide high-quality public transit, cycling, and pedestrian infrastructure maps. The goal is to promote best practices and celebrate high quality infrastructure, while calling attention to unsafe and low-quality infrastructure.
Current status (Aug 2025): We are working on cycling / micromobility maps for British Columbia. Transit and Pedestrian maps will come in the future.
Online at: www.transitopia.org.
This repository is a monorepo containing most of the parts you need to run and develop Transitopia locally. It consists of:
web-ui: The Single Page Application implements the website with the Transitopia map, seen at https://www.transitopia.org/map-layers: A Transitopia profile for Planetiler that generates our unique map layers/overlays, like the cycling/micromobility map.
- You need Node.js on your system (and optionally Java 21+ if you want to build the maps yourself).
- Clone this repo to your system.
- Get the vector base map tiles file:
- Option 1: Download. Go to Transitopia Base Map Releases, find the most recent release, and download
transitopia-base-bc.pmtiles. Copy it into this repo'sweb-ui/public/folder. - Option 2: Build it yourself. Use the Transitopia planetiler-openmaptiles repository to generate the
transitopia-base-bc.pmtilesvector map data file using planetiler (see that repo's README). Copy the resulting map data file into this repo:cp ../planetiler-openmaptiles/data/transitopia-base-bc.pmtiles web-ui/public/transitopia-base-bc.pmtiles.
- Option 1: Download. Go to Transitopia Base Map Releases, find the most recent release, and download
- Get the vector overlay tiles file: this contains the cycling paths, pedestrian paths, etc. and is specific to Transitopia.
- Option 1: Download. Go to this page, select the latest run, then click on
compiled-mapsto download the .zip file with the vector overlays. Unzip it, then copy the resulting map data file into this repo'smap-layers/data/folder. For example,cp ~/Downloads/transitopia-cycling-british-columbia.pmtiles /path/to/transitopia/map-layers/data/. - Option 2: Build it yourself. Use the
map-layersfolder in this repository to generate thetransitopia-cycling-british-columbia.pmtilesvector map data file using planetiler. See the README for instructions.
- Option 1: Download. Go to this page, select the latest run, then click on
- Install dependencies:
npm install - Run the development server:
npm run dev - Go to http://localhost:5173/ in your browser.
Transitopia is a project by Braden MacDonald (@bradenmacdonald on GitHub).
All source code is open source and all data is open data, but the licenses vary.
The primary source of map data is OpenStreetMap. Vector map tiles are generated using planetiler - see the map-layers folder for all the details on how the map is generated.
The map is rendered using MapLibre GL.
Map vector tile data is stored in the PMTiles format.
The base map style is a customized version of OpenMapTiles Positron, and the base map is a customized version of OpenMapTiles.
Hosting is provided by Cloudflare Workers.
