/// <summary> /// Initializes a new instance of the <see cref="MainPageVM"/> class. /// </summary> public MainPageVM() { if (IsDesignMode) { Route = new RouteDataSource(null); } }
public void RouteDataSource_SetCurrentLocation() { //Generate route from mock up response RouteDataSource ds = new RouteDataSource(route); //Before setting location these values are not initialize Assert.AreEqual(0, ds.DistanceToDestination); Assert.IsNull(ds.NextManeuver); //Push location to data source ds.SetCurrentLocation(new MapPoint(-117.16537, 34.122730, SpatialReferences.Wgs84)); //Validate that RouteDataSource updated correctly Assert.AreEqual(21166.0, ds.DistanceToDestination); Assert.AreEqual(new TimeSpan(0, 18, 36), ds.TimeToDestination); Assert.AreEqual(124, ds.DistanceToWaypoint); Assert.AreEqual("13 mi", ds.MilesToDestination); Assert.AreEqual("Turn left on Club View Dr", ds.NextManeuver); }
private async void GenerateRoute(string address) { if (!string.IsNullOrWhiteSpace(address) && LocationDisplay != null && LocationDisplay.Location != null) { if (m_routeTaskCancellationToken != null) { m_routeTaskCancellationToken.Cancel(); } try //this is an async void method, so we need to try/catch everything that's async { RouteCalculationErrorMessage = null; m_routeTaskCancellationToken = new CancellationTokenSource(); IsCalculatingRoute = true; var result = await new Models.RouteService().GetRoute( address, LocationDisplay.Location.Position, m_routeTaskCancellationToken.Token); m_routeTaskCancellationToken = null; Route = new RouteDataSource(result); InitializeRoute(result.Routes); Route.SetCurrentLocation(LocationDisplay.Location.Position); #if DEBUG // When debugging use a simulator for the generated route LocationDisplay.DataSource = new RouteLocationSimulator(result); LocationDisplay.IsEnabled = true; #endif LocationDisplay.AutoPanMode = LocationDisplayAutoPanMode.Navigation; } catch (OperationCanceledException) { //Do nothing when calculation was cancelled } catch (System.Exception ex) { if (ex.Message == "Address not found") { return; } RouteCalculationErrorMessage = ex.Message; } finally { IsCalculatingRoute = false; } } }
/// <summary> /// Initializes a new instance of the <see cref="MainPageVM"/> class. /// </summary> public MainPageVM() { if(IsDesignMode) Route = new RouteDataSource(null); }
private async void GenerateRoute(string address) { if (!string.IsNullOrWhiteSpace(address) && LocationDisplay != null && LocationDisplay.CurrentLocation != null) { if (m_routeTaskCancellationToken != null) m_routeTaskCancellationToken.Cancel(); try //this is an async void method, so we need to try/catch everything that's async { RouteCalculationErrorMessage = null; m_routeTaskCancellationToken = new CancellationTokenSource(); IsCalculatingRoute = true; var result = await new Models.RouteService().GetRoute( address, LocationDisplay.CurrentLocation.Location, m_routeTaskCancellationToken.Token); m_routeTaskCancellationToken = null; Route = new RouteDataSource(result); Route.SetCurrentLocation(LocationDisplay.CurrentLocation.Location); #if DEBUG // When debugging use a simulator for the generated route LocationDisplay.LocationProvider = new RouteLocationSimulator(result); #endif LocationDisplay.AutoPanMode = AutoPanMode.Navigation; } catch (OperationCanceledException) { //Do nothing when calculation was cancelled } catch (System.Exception ex) { RouteCalculationErrorMessage = ex.Message; } finally { IsCalculatingRoute = false; } } }
internal RouteEndPoint(string APIKey) { _APIKey = APIKey; _RouteDataSource = new RouteDataSource(); _RouteConverter = new XMLToRouteConverter(); }