---
id: task-1
title: Implement navigation routes
status: Done
assignee: [@claude]
created_date: '2025-12-15 19:37'
completed_date: '2025-12-28'
labels: [feature, navigation]
dependencies: []
priority: high
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Add routing between participants and waypoints using c3nav for indoor routes and OSRM/GraphHopper for outdoor routes
<!-- SECTION:DESCRIPTION:END -->

## Implementation Notes

### Components Added
- `/api/routing/route.ts` - API endpoint for route calculation
- `RouteOverlay.tsx` - Map overlay component for visualizing routes
- `NavigationPanel.tsx` - UI panel for selecting navigation targets

### Features Implemented
- **Outdoor routing**: Uses OSRM public API for walking/driving routes
- **Indoor routing**: Integrates c3nav API for CCC venue navigation
- **Mixed routes**: Handles transitions between indoor/outdoor
- **Route visualization**: GeoJSON line layer on MapLibre GL map
- **Navigation UI**: Click on participant/waypoint to get directions
- **State management**: Route state integrated into Zustand store

### Technical Details
- Route segments are typed as `outdoor`, `indoor`, or `transition`
- Distance/time estimates calculated from OSRM and c3nav responses
- Route line rendered with outline for visibility
- Map auto-fits to route bounds when calculated

### Commit
`a6c124c` - feat: Add navigation routes feature with indoor/outdoor routing
