Interactive map of Montreal's Underground City (RÉSO) - the world's largest underground pedestrian network.
npm install
npm run dev| Action | Mouse | Trackpad | Touch |
|---|---|---|---|
| Pan/Move | Click + Drag | Two-finger drag | One-finger drag |
| Zoom In | Scroll wheel up | Pinch out | Pinch out |
| Zoom Out | Scroll wheel down | Pinch in | Pinch in |
| Zoom to Area | Shift + Drag box | - | - |
| Fly to Location | Click sidebar button | Click sidebar button | Tap sidebar button |
Note: Map rotation is not supported in Leaflet.
src/
├── components/
│ └── MapView.tsx # Main map with sidebar
├── data/
│ ├── entries.ts # Entry point locations
│ └── reso.json # RÉSO tunnel GeoJSON (placeholder)
├── App.tsx
└── index.css # Tailwind + Leaflet styles
- ✅ Dark theme with CARTO basemap (30% opacity for orientation)
- ✅ RÉSO tunnels rendered in cyan (#00FFCC)
- ✅ Entry point markers (McGill, Place-Ville-Marie, etc.)
- ✅ Fly-to navigation sidebar
- ✅ Responsive zoom controls
- Replace placeholder GeoJSON with real Overpass API data
- Add checkpoint system with ability to add/remove markers
- Search functionality
- Mobile responsive sidebar (collapsible)
- Route highlighting between locations
- React 18 + TypeScript
- Vite
- React-Leaflet / Leaflet.js
- Tailwind CSS
- Lucide React (icons)