Outdoor Route

"/home/yossef/notes/git/projects/maplibra/flows/Outdoor Route.md"

path: maplibra/flows/Outdoor Route.md

- **fileName**: Outdoor Route
- **Created on**: 2026-06-16 00:48:42

Outdoor Route

Purpose: How indoor and outdoor routes are stitched together for campus-scale navigation.

Related: ../Home.md, ../Architecture.md, ../modules/Outdoor Routing.md, ../modules/Pathfinding.md, ../modules/Path Renderer.md

Route Stitching Flow

1. Detect Outdoor Points

PathfindingController.computeRoute(start, target)
  → isOutdoorLocation(start) — outside building footprint?
  → isOutdoorLocation(target) — outside building footprint?

2. Determine Route Type

Start Target Strategy
Indoor Indoor Pure indoor A*
Outdoor Outdoor Outdoor street route only (if direct)
Outdoor Indoor Stitch outdoor → indoor entrance
Indoor Outdoor Stitch indoor entrance → outdoor

3. Find Entrance/Exit Points

4. Outdoor Segment

getNearestRoad(outdoorPoint) → nearest road point
getOutdoorRouteData(roadPointA, roadPointB) → street route coords

5. Unified Graph

unifiedGraph = indoorGraph + outdoorSegmentNodes
→ add temporary nodes for outdoor points
→ add edges connecting outdoor → entrance → indoor
→ run A* on unified graph

6. Smoothing

7. Rendering

Important Files

How It Connects