Waypoints is an interactive atlas of places I've visited, journeys I've taken, and experiences I've documented. Built with Leaflet, Python, and geospatial APIs, it combines geographic features, travel routes, personal photographs, and narrative into an explorable map.
Project Links
Mapping my travels turned into a masterclass in geospatial tools and memory: coordinates, mapping APIs, and long-lost places I hadn’t thought about in years. From tracing a train ride in India to redrawing a boat trip in Costa Rica, the technical work brought deep personal reflection. Rebuilding a moment from a blurry photo, rerouting old paths, rediscovering forgotten places. It was sweetly profound, nostalgic, and oddly healing.
It's far from done. There will always be more world than time.
I look forward to never finishing it.
Project Overview
Waypoints brings years of travel records, photographs, routes, and personal recollections together in an interactive atlas. Visitors can explore places I've lived and traveled, follow journeys across the map, and open location-specific stories and photographs. Geographic layers distinguish different activities and experiences, connecting individual memories to the places and routes around them.
Building the atlas meant integrating geographic data from several sources into a coherent interface. Google Sheets and CSV files provide the underlying travel records, while APIs supply geographic features, location searches, and routes. I also created custom GeoJSON features and manually reconstructed routes where existing geographic data couldn't capture the journey I wanted to represent.
A Python backend handles data integration and processing, while Leaflet powers the interactive map. Layer controls, clustered markers, photographic popups, and a guided interface help visitors move between a global overview and the details of individual places. The application brings together geospatial data handling, API integration, route rendering, and frontend design in a single, evolving project.
Waypoints is both a technical exploration and a personal archive. It demonstrates how disparate data sources can become an accessible geographic experience, while exploring a question that keeps the project growing: how can maps help us revisit not just where we've been, but what those places meant to us?
Gallery
The landing view maps major locations across the globe, with
marker colors distinguishing life imprints. Select a marker to
open its associated stories, photographs, and geographic
context.
A location popup combining photographs and commentary in a single
interface, demonstrating how personal media and narrative are
integrated into the map.
Multiple spatial layers showing a waypoint marker alongside
activity markers and travel routes in the US Virgin Islands,
illustrating how point-based records and linear geographic
features can be explored together.
A location popup with a photo reel and commentary, shown
alongside the route layer. The view demonstrates how
location-specific stories connect to the broader geography of a
journey.
Activity markers and mapped routes reveal a more detailed,
local-scale view of the atlas, demonstrating how the same mapping
interface accommodates both global travel and nearby
exploration.
References
- Leaflet.js — Interactive map rendering. Learn more.
- Overpass API — Queries OpenStreetMap for geographic features, including trails, waterways, and ferry routes. Learn more.
- Nominatim — Geocoding and reverse geocoding. Learn more.
- OpenRouteService API — Generates vehicle routes. Learn more.
- GeographicLib — Geodesic calculations and geographic measurements (e.g., great circle routes). Learn more.
- geojson.io — Drawing and exporting custom geographic features and reconstructed routes. Learn more.
- GeoJSON — Format for storing and exchanging geographic features and routes. Learn more.
- Google Sheets API — Integrates waypoint and travel data from Google Sheets. Learn more.
- Python — Data integration, processing, and API interaction. Learn more.
- Shepherd.js — Guided interface tours. Learn more.
- Personal Photos — All photographs are from my personal collection and may not be copied, modified, or distributed without written permission. If you appear in a photograph and would like it removed, please contact bryan.johns@informedwanderer.com.
- Personal Memory — Narratives and waypoints are based on my experiences and recollections.