Пример #1
0
        void CalculateRoute(BingTravelMode mode)
        {
            if (isBusy)
            {
                return;
            }
            isBusy = true;
            var waypoints    = new[] { new RouteWaypoint(StartingAddress, StartingLocation), new RouteWaypoint(DestinationAddress, DestinationLocation) };
            var unit         = DistanceMeasureUnit.Mile;
            var optimization = BingRouteOptimization.MinimizeTime;

            RouteService.CalculateRouteAsync(waypoints, unit, optimization, mode).ContinueWith(t => {
                if (t.Result.ResultCode == RequestResultCode.Success && t.Result.RouteResults.Count > 0)
                {
                    BingRouteResult route = t.Result.RouteResults.First();
                    if (route.Legs.Count > 0)
                    {
                        BingRouteLeg leg       = route.Legs.First();
                        IsWalkingAvailable     = (leg.Distance > maximumWalkingDistance) ? false : true;
                        GeoPoint startLocation = leg.Itinerary.First().Location;
                        GeoPoint endLocation   = leg.Itinerary.Last().Location;
                        CenterPoint            = new GeoPoint((startLocation.Latitude + endLocation.Latitude) / 2, (startLocation.Longitude + endLocation.Longitude) / 2);
                        ActiveItinerary        = leg.Itinerary.Select(item => new ItineraryItemViewModel(item)).ToList();
                    }
                }
                isBusy = false;
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
Пример #2
0
        public async void Should_Set_Coordinates_For_A_Known_Address()
        {
            var routeService = new RouteService(new MapLinkCoordinateFinder(new MapLinkToken()), new MapLinkRouteCalculator(new MapLinkToken()));

            var address1 = new AddressSearch("Avenida Paulista", 1000, "São Paulo", "SP");
            var address2 = new AddressSearch("Avenida Paulista", 2000, "São Paulo", "SP");

            var list = new List <AddressSearch>()
            {
                address1, address2
            };

            await routeService.CalculateRouteAsync(list, RouteType.DefaultRouteFaster);

            Assert.IsTrue(address1.Latitude != 0 && address1.Longitude != 0);
        }
Пример #3
0
        public async void Should_Calculate_The_Route_For_A_Known_Address_Avoiding_The_Traffic_()
        {
            var routeService = new RouteService(new MapLinkCoordinateFinder(new MapLinkToken()), new MapLinkRouteCalculator(new MapLinkToken()));

            var address1 = new AddressSearch("Avenida Paulista", 1000, "São Paulo", "SP");
            var address2 = new AddressSearch("Avenida Nove de Julho", 2000, "São Paulo", "SP");

            var list = new List <AddressSearch>()
            {
                address1, address2
            };

            var route = await routeService.CalculateRouteAsync(list, RouteType.RouteAvoidingTraffic);

            Assert.IsTrue(route.TotalCost > 0);
            Assert.IsTrue(route.TotalDistance > 0);
            Assert.IsTrue(route.TotalFuelCost > 0);
            Assert.IsTrue(route.TotalTime != string.Empty);
        }
        public async void Should_Calculate_The_Route_For_A_Known_Address()
        {


            var routeService = new RouteService(new MapLinkCoordinateFinder(new MapLinkToken()), new MapLinkRouteCalculator(new MapLinkToken()));

            var address1 = new AddressSearch("Avenida Paulista", 1000, "São Paulo", "SP");
            var address2 = new AddressSearch("Avenida Paulista", 2000, "São Paulo", "SP");

            var list = new List<AddressSearch>() { address1, address2 };

            var route = await routeService.CalculateRouteAsync(list, RouteType.DefaultRouteFaster);

            Assert.IsTrue(route.TotalCost > 0);
            Assert.IsTrue(route.TotalDistance > 0);
            Assert.IsTrue(route.TotalFuelCost > 0);
            Assert.IsTrue(route.TotalTime != string.Empty);
        }
        public async void Should_Set_Coordinates_For_A_Known_Address()
        {


            var routeService = new RouteService(new MapLinkCoordinateFinder(new MapLinkToken()), new MapLinkRouteCalculator(new MapLinkToken()));

            var address1 = new AddressSearch("Avenida Paulista", 1000, "São Paulo", "SP");
            var address2 = new AddressSearch("Avenida Paulista", 2000, "São Paulo", "SP");

            var list = new List<AddressSearch>() { address1, address2 };

            await routeService.CalculateRouteAsync(list, RouteType.DefaultRouteFaster);

            Assert.IsTrue(address1.Latitude != 0 && address1.Longitude != 0);
        }