Mapbox Navigation Patterns
Expert guidance for implementing navigation and routing features using Mapbox Directions API and Navigation SDKs. Covers turn-by-turn navigation, route optimization, real-time traffic integration, multi-stop routing, and navigation UI components.
Use This Skill When
User says things like:
- "I need turn-by-turn navigation in my app"
- "How do I add driving directions?"
- "I want to show a route on the map"
- "I need multi-stop routing"
- "How do I add voice guidance?"
- "I want real-time traffic updates"
- "I need to optimize delivery routes"
Product Overview
Directions API (REST)
Best for: Web applications, simple routing, backend route calculation
Features:
- Route calculation (driving, walking, cycling, traffic)
- Alternative routes
- Turn-by-turn instructions
- Multi-stop routing (up to 25 waypoints)
- Route optimization
- Real-time traffic data
- Avoid specific roads/areas
Pricing: Pay per request
Navigation SDK for iOS
Best for: Native iOS apps with turn-by-turn navigation
Defaults: SwiftUI app shell + wrap drop-in NavigationViewController via UIViewControllerRepresentable (official getting-started path). Use a fully custom Core UI (CoreSDKExample) only when the user explicitly wants to build their own nav chrome.
Before coding: SPM (MapboxNavigationCore + MapboxNavigationUIKit), .netrc download token, MBXAccessToken, location permissions, background audio/location — see install guide and the iOS reference checklist.
Features:
- Drop-in turn-by-turn UI (
NavigationViewController) — default
- Optional fully custom Core UI (route progress / banner publishers)
- Voice guidance (30+ languages)
- Real-time rerouting
- Traffic-aware routing
- Offline maps and routing
- Route progress tracking
- Speed limit display
Pricing: Monthly Active Users (MAU) based
Navigation SDK for Android
Best for: Native Android apps with turn-by-turn navigation
Features:
- Complete turn-by-turn navigation UI
- Voice guidance (30+ languages)
- Real-time rerouting
- Traffic-aware routing
- Offline maps and routing
- Custom UI components
- Route progress tracking
- Speed limit display
Pricing: Monthly Active Users (MAU) based
Decision Guide
Choose Directions API when:
- ✅ Web application
- ✅ Simple route display (no turn-by-turn)
- ✅ Backend route calculation
- ✅ Route planning and optimization
- ✅ Multi-stop routing
- ✅ Don't need voice guidance
Choose Navigation SDK when:
- ✅ Native mobile app (iOS/Android)
- ✅ Need turn-by-turn navigation
- ✅ Need voice guidance
- ✅ Need navigation UI components
- ✅ Need offline navigation
- ✅ Need real-time rerouting
- ✅ Building a navigation/delivery app
Implementation Patterns
- references/web-directions-api.md - Directions API patterns for the web: basic route display, turn-by-turn instructions, alternative routes, multi-stop routing, route optimization, and congestion-based route coloring
- references/ios-navigation-sdk.md - When: iOS turn-by-turn, setup, default SwiftUI + wrapped
NavigationViewController, Core opt-in, example catalog
- references/ios-navigation-specialized.md - When: multi-stop, route line, camera, road cameras, route alerts, or
NavigationMapView customization
- references/android-navigation-sdk.md - Navigation SDK for Android: basic turn-by-turn navigation, custom navigation UI, route line rendering, maneuver arrows, navigation camera, voice guidance
- references/android-performance-antipatterns.md - Android Navigation SDK performance and correctness antipatterns: Native Route Object traversal costs, threading, memory/lifecycle leaks, route management correctness, frequent-callback rendering efficiency, and Coordination API lifecycle
- references/best-practices.md - Route caching, error handling, performance optimization, user experience, and common use cases (delivery routing, ride-sharing ETAs, walking/cycling directions)
Related Skills
- mapbox-search-integration: Address search and geocoding
- mapbox-web-performance-patterns: Optimizing navigation performance
- mapbox-ios-patterns: iOS-specific integration patterns
- mapbox-android-patterns: Android-specific integration patterns
- mapbox-token-security: Securing your access tokens
Resources
Quick Decision Guide
User says: "I need directions"
- Web app → Use Directions API
- Mobile app → Use Navigation SDK
User says: "I need turn-by-turn navigation"
- iOS → Navigation SDK for iOS (SwiftUI + wrapped
NavigationViewController by default; Core custom UI only if requested)
- Android → Navigation SDK for Android
- Web → Use Directions API + custom UI (no voice guidance)
User says: "I need to optimize delivery routes"
→ Use Optimization API (multi-stop route optimization)
User says: "I need real-time traffic"
→ Use driving-traffic profile with Directions API or Navigation SDK
User says: "I need voice guidance"
→ Must use Navigation SDK (iOS/Android only)
User says: "Directions API or Navigation SDK?"
→ Native turn-by-turn / voice → Navigation SDK (MAU pricing). Web / route display only → Directions API (pay-per-request).
1---2name: mapbox-navigation-patterns3description: Navigation implementation patterns for turn-by-turn directions, route optimization, real-time traffic, multi-stop routing, and voice guidance across web, iOS, and Android platforms4---5
6# Mapbox Navigation Patterns
7
8Expert guidance for implementing navigation and routing features using Mapbox Directions API and Navigation SDKs. Covers turn-by-turn navigation, route optimization, real-time traffic integration, multi-stop routing, and navigation UI components.
9
10## Use This Skill When
11
12User says things like:
13
14- "I need turn-by-turn navigation in my app"
15- "How do I add driving directions?"
16- "I want to show a route on the map"
17- "I need multi-stop routing"
18- "How do I add voice guidance?"
19- "I want real-time traffic updates"
20- "I need to optimize delivery routes"
21
22## Product Overview
23
24### Directions API (REST)
25
26**Best for:** Web applications, simple routing, backend route calculation
27
28**Features:**
29
30- Route calculation (driving, walking, cycling, traffic)
31- Alternative routes
32- Turn-by-turn instructions
33- Multi-stop routing (up to 25 waypoints)
34- Route optimization
35- Real-time traffic data
36- Avoid specific roads/areas
37
38**Pricing:** Pay per request
39
40### Navigation SDK for iOS
41
42**Best for:** Native iOS apps with turn-by-turn navigation
43
44**Defaults:** SwiftUI app shell + wrap drop-in `NavigationViewController` via `UIViewControllerRepresentable` (official getting-started path). Use a fully custom Core UI ([CoreSDKExample](https://github.com/mapbox/mapbox-navigation-ios/tree/main/Examples/CoreSDKExample)) only when the user explicitly wants to build their own nav chrome.
45
46**Before coding:** SPM (`MapboxNavigationCore` + `MapboxNavigationUIKit`), `.netrc` download token, `MBXAccessToken`, location permissions, background `audio`/`location` — see [install guide](https://docs.mapbox.com/ios/navigation/guides/install/) and the iOS reference checklist.
47
48**Features:**
49
50- Drop-in turn-by-turn UI (`NavigationViewController`) — default
51- Optional fully custom Core UI (route progress / banner publishers)
52- Voice guidance (30+ languages)
53- Real-time rerouting
54- Traffic-aware routing
55- Offline maps and routing
56- Route progress tracking
57- Speed limit display
58
59**Pricing:** Monthly Active Users (MAU) based
60
61### Navigation SDK for Android
62
63**Best for:** Native Android apps with turn-by-turn navigation
64
65**Features:**
66
67- Complete turn-by-turn navigation UI
68- Voice guidance (30+ languages)
69- Real-time rerouting
70- Traffic-aware routing
71- Offline maps and routing
72- Custom UI components
73- Route progress tracking
74- Speed limit display
75
76**Pricing:** Monthly Active Users (MAU) based
77
78## Decision Guide
79
80### Choose Directions API when:
81
82- ✅ Web application
83- ✅ Simple route display (no turn-by-turn)
84- ✅ Backend route calculation
85- ✅ Route planning and optimization
86- ✅ Multi-stop routing
87- ✅ Don't need voice guidance
88
89### Choose Navigation SDK when:
90
91- ✅ Native mobile app (iOS/Android)
92- ✅ Need turn-by-turn navigation
93- ✅ Need voice guidance
94- ✅ Need navigation UI components
95- ✅ Need offline navigation
96- ✅ Need real-time rerouting
97- ✅ Building a navigation/delivery app
98
99## Implementation Patterns
100
101- **[references/web-directions-api.md](references/web-directions-api.md)** - Directions API patterns for the web: basic route display, turn-by-turn instructions, alternative routes, multi-stop routing, route optimization, and congestion-based route coloring
102- **[references/ios-navigation-sdk.md](references/ios-navigation-sdk.md)** - When: iOS turn-by-turn, setup, default SwiftUI + wrapped `NavigationViewController`, Core opt-in, example catalog
103- **[references/ios-navigation-specialized.md](references/ios-navigation-specialized.md)** - When: multi-stop, route line, camera, road cameras, route alerts, or `NavigationMapView` customization
104- **[references/android-navigation-sdk.md](references/android-navigation-sdk.md)** - Navigation SDK for Android: basic turn-by-turn navigation, custom navigation UI, route line rendering, maneuver arrows, navigation camera, voice guidance
105- **[references/android-performance-antipatterns.md](references/android-performance-antipatterns.md)** - Android Navigation SDK performance and correctness antipatterns: Native Route Object traversal costs, threading, memory/lifecycle leaks, route management correctness, frequent-callback rendering efficiency, and Coordination API lifecycle
106- **[references/best-practices.md](references/best-practices.md)** - Route caching, error handling, performance optimization, user experience, and common use cases (delivery routing, ride-sharing ETAs, walking/cycling directions)
107
108## Related Skills
109
110- **mapbox-search-integration**: Address search and geocoding
111- **mapbox-web-performance-patterns**: Optimizing navigation performance
112- **mapbox-ios-patterns**: iOS-specific integration patterns
113- **mapbox-android-patterns**: Android-specific integration patterns
114- **mapbox-token-security**: Securing your access tokens
115
116## Resources
117
118- [Directions API Documentation](https://docs.mapbox.com/api/navigation/directions/)
119- [Navigation SDK for iOS](https://docs.mapbox.com/ios/navigation/)
120- [Navigation SDK for Android](https://docs.mapbox.com/android/navigation/)
121- [Optimization API Documentation](https://docs.mapbox.com/api/navigation/optimization/)
122- [Map Matching API](https://docs.mapbox.com/api/navigation/map-matching/)
123- [Navigation Products Overview](https://docs.mapbox.com/help/getting-started/navigation/)
124
125## Quick Decision Guide
126
127**User says: "I need directions"**
128
129- Web app → Use Directions API
130- Mobile app → Use Navigation SDK
131
132**User says: "I need turn-by-turn navigation"**
133
134- iOS → Navigation SDK for iOS (SwiftUI + wrapped `NavigationViewController` by default; Core custom UI only if requested)
135- Android → Navigation SDK for Android
136- Web → Use Directions API + custom UI (no voice guidance)
137
138**User says: "I need to optimize delivery routes"**
139→ Use Optimization API (multi-stop route optimization)
140
141**User says: "I need real-time traffic"**
142→ Use `driving-traffic` profile with Directions API or Navigation SDK
143
144**User says: "I need voice guidance"**
145→ Must use Navigation SDK (iOS/Android only)
146
147**User says: "Directions API or Navigation SDK?"**
148→ Native turn-by-turn / voice → Navigation SDK (**MAU** pricing). Web / route display only → Directions API (**pay-per-request**).