Exemplo n.º 1
0
 /// <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);
 }
Exemplo n.º 3
0
        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;
                }
            }
        }
        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);
        }
Exemplo n.º 5
0
		/// <summary>
		/// Initializes a new instance of the <see cref="MainPageVM"/> class.
		/// </summary>
		public MainPageVM()
		{
			if(IsDesignMode)
				Route = new RouteDataSource(null);
		}
Exemplo n.º 6
0
		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;
				}
			}
		}
Exemplo n.º 7
0
 internal RouteEndPoint(string APIKey)
 {
     _APIKey          = APIKey;
     _RouteDataSource = new RouteDataSource();
     _RouteConverter  = new XMLToRouteConverter();
 }