startNavigation method
//////////// //////////// Starts active navigation along the planned route
Implementation
// II.E - Navigation Control
///////////////
/// Starts active navigation along the planned route
Future<void> startNavigation() async {
if (_state != NavigationStatus.routePlanned || _currentRoute == null) {
throw Exception('Cannot start navigation without a planned route');
}
try {
_state = NavigationStatus.active;
_progress = 0.0;
_currentStepIndex = 0;
_isPaused = false;
// Calculate cumulative distances in case they weren't set
if (_cumulativeStepDistances.isEmpty) {
_calculateCumulativeStepDistances();
}
// Save navigation state for persistence
await _saveNavigationState();
notifyListeners();
} catch (e) {
print('Error starting navigation: $e');
throw Exception('Failed to start navigation: $e');
}
}