A bike map for Seattle, built with large amounts of open data for better exploration and directions. Check it out at https://www.openbikemapseattle.com.
Note: This repository contains code generated by AI.
See more infrastructure at a glance. Open Bike Map Seattle shows the following layers on the map:
- All ages & abilities routes, including neighborhood greenways
- Every public bike rack and bicycle wayfinding sign in the city
- Public restrooms, parks, and other points of interest
- Under construction routes and official city future plans
Ride comfortably and safely. Using city data and other sources, directions to your destination consider the following factors:
- The level of bike infrastructure
- How wide the roads are
- If protected crossings such as traffic signals are available
- How many turns are involved in the route
- Elevation, computed intelligently to recognize bridges and overpasses correctly
And more miscellaneous features.
- Works 100% offline
- Regular data updates will be available
- Sidewalk riding
- Customized profiles for your riding priorities
| Layer | Source |
|---|---|
| Bike facilities, multi-use trails, Bike+ Network, bike racks, wayfinding signs | SDOT Open Data |
| Traffic signals, stop signs, crosswalks, beacons, traffic circles | SDOT |
| Street centerlines, libraries, community centers, park restrooms | SDOT |
| Regional trails outside Seattle | King County GIS |
| Light rail stations | Sound Transit (via SDOT) |
| Street network, addresses, POIs | OpenStreetMap |
| Basemap tiles | Protomaps daily build |
| Elevation | USGS 3DEP 1/3 arc-second DTM |
npm install
npm run dev # http://localhost:5173The shipped repo includes pre-built data (public/data/) and a Seattle
PMTiles extract (public/tiles/), so the app runs out of the box.
To refresh the data from upstream sources:
python3 -m venv .venv && source .venv/bin/activate
pip install requests shapely numpy rasterio scipy scikit-image
python3 scripts/fetch_data.py # SDOT / King County GeoJSON
python3 scripts/build_graph.py # routing graph from OSM + SDOT joins
python3 scripts/sample_dtm.py # USGS elevation per node + per edge
python3 scripts/resolve_elevation.py # heat-eq smoothing over bridges/tunnels
python3 scripts/build_addr_index.py # OSM addresses + POIs
python3 scripts/build_data_manifest.py # PWA version manifest (always last)To refresh the basemap from a recent Protomaps daily build:
brew install pmtiles
bash scripts/make_basemap.sh YYYYMMDD # pick a date from build.protomaps.comTo build for deploy:
npm run build:pwa # icons, fonts, data manifest
npm run build # vite → dist/vite.config.js uses base: './', so the build works under any GitHub
Pages path.
Built on MapLibre GL JS, Protomaps, PMTiles, FlexSearch, and the work of OpenStreetMap, SDOT, King County GIS, and USGS. UI icons by Google Material Symbols.
