An interactive data visualization exploring how accessible the 2028 Los Angeles Olympic venues are by public transit. LA leadership has announced that Angelenos will not be able to drive to the Games, yet the city's transit system remains a challenge for most residents. This project investigates what it would look like to reach every proposed venue using only public transit, walking, or cyclingβand how much of Los Angeles is left behind.
π Data collection & processing lives in
la28-rβ the companion R repo where isochrone data is generated from the TravelTime API and joined with census population data.
Los Angeles is synonymous with car culture, yet the 2028 Olympics aim to be "no-car Games." This project examines the gap between that ambition and the current state of LA's public transit by:
The centrepiece of the project is an interactive isochrone map built with D3 and SVG. When a user selects a venue (via dropdown or by clicking a marker on the map), the map animates colour-coded isochrone polygons radiating outward from the venue, each representing a travel-time band. Census tract boundaries provide geographic context, and optional Metro rail and bus lines can be toggled on. Hovering over an isochrone or venue displays a tooltip with details such as population coverage. Below the map, a percent bar summarizes the share of residents within each time band.
| Data | Source | Notes |
|---|---|---|
| Census tracts (population & boundaries) | NHGIS | 2020 Census tract-level population for Los Angeles County |
| Isochrones (transit travel-time polygons) | TravelTime API | Generated for each venue at 30, 60, 90, and 120 min thresholds using public transit mode with a 20-min walking allowance. Collected and processed in the la28-r repo. |
| Metro route geometries | GTFS feeds via gtfs-to-geojson |
Converted from LA Metro's GTFS data to GeoJSON for map overlays |
| Survey data | USC LABarometer | Public opinion on transit convenience and safety |
| Venue list & locations | LA 2028 official site | Geocoded with the tidygeocoder R package |
d3-geo, d3-scale, d3-array) β projections, scales, and data wrangling# Install dependencies
npm install
# Start the dev server
npm run dev
# Or open in the browser automatically
npm run dev -- --open
npm run build
# Preview the production build locally
npm run preview
The project is configured to deploy on Netlify (see netlify.toml).
src/
βββ routes/
β βββ +layout.svelte # App layout
β βββ +page.svelte # Main narrative page
βββ lib/
β βββ IsochroneMap.svelte # Interactive isochrone map
β βββ TravelTimeBar.svelte # Venue comparison bar chart
β βββ SurveyCharts.svelte # LABarometer survey visualizations
β βββ TransitLines.svelte # Metro route overlay
β βββ VenueMarkers.svelte # Venue markers layer
β βββ PercentBar.svelte # Population percent bar
β βββ LegendHTML.svelte # Map legend
β βββ *Tooltip.svelte # Tooltip components
β βββ data/ # GeoJSON & JSON data files
βββ global.css # Global styles
This project is for educational and research purposes.