Пример #1
0
        private async void routeBtn_Click(object sender, RoutedEventArgs e)
        {
            BasicGeoposition startPoint = new BasicGeoposition()
            {
                Latitude  = 13.7617,
                Longitude = 100.5365
            };
            BasicGeoposition endPoint = new BasicGeoposition()
            {
                Latitude  = 13.7642,
                Longitude = 100.5401
            };
            MapRouteFinderResult routeFinder = await MapRouteFinder.GetDrivingRouteAsync(new Geopoint(startPoint), new Geopoint(endPoint), MapRouteOptimization.Distance, MapRouteRestrictions.None);

            if (routeFinder.Status == MapRouteFinderStatus.Success)
            {
                MapRouteView view = new MapRouteView(routeFinder.Route)
                {
                    RouteColor   = Colors.Blue,
                    OutlineColor = Colors.Yellow
                };

                myMap.Routes.Add(view);
                await myMap.TrySetViewBoundsAsync(routeFinder.Route.BoundingBox, null, MapAnimationKind.None);
            }
        }
        private async void ShowRouteOnMap(BasicGeoposition startLocation, BasicGeoposition endLocation)
        {
            // Get the route between the points.
            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetDrivingRouteAsync(
                    new Geopoint(startLocation),
                    new Geopoint(endLocation),
                    MapRouteOptimization.Time,
                    MapRouteRestrictions.None);

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                // Use the route to initialize a MapRouteView.
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRouteGlobal        = viewOfRoute;
                viewOfRoute.RouteColor   = Colors.Blue;
                viewOfRoute.OutlineColor = Colors.Black;

                // Add the new MapRouteView to the Routes collection
                // of the MapControl.
                mapaPodaci.Routes.Add(viewOfRoute);

                // Fit the MapControl to the route.
                await mapaPodaci.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
            }
        }
Пример #3
0
        private async void ShowRouteOnMap(BasicGeoposition l1, BasicGeoposition l2)
        {
            BasicGeoposition startLocation = l1;
            BasicGeoposition endLocation   = l2;

            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetDrivingRouteAsync(
                    new Geopoint(startLocation),
                    new Geopoint(endLocation),
                    MapRouteOptimization.Time,
                    MapRouteRestrictions.None);

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.DodgerBlue;
                viewOfRoute.OutlineColor = Colors.White;
                myMap.Routes.Clear();
                myMap.Routes.Add(viewOfRoute);

                await myMap.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
            }
        }
        private async void MapItemsStack_Holding(object sender, HoldingRoutedEventArgs e)
        {
            var selectedItem = (Entidade)(sender as StackPanel).DataContext;

            Debug.WriteLine("new ROUTE TO: " + selectedItem.Nome);
            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(this.current, selectedItem.geo, MapRouteOptimization.Time, MapRouteRestrictions.None, 290);


            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                // Use the route to initialize a MapRouteView.
                try
                {
                    map1.Routes.RemoveAt(0);
                }
                catch
                {
                    //no route to remove
                }
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Blue;
                viewOfRoute.OutlineColor = Colors.Blue;
                // Add the new MapRouteView to the Routes collection
                // of the MapControl.
                map1.Routes.Add(viewOfRoute);
                // Fit the MapControl to the route.
                await map1.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    Windows.UI.Xaml.Controls.Maps.MapAnimationKind.Bow);
            }
        }
Пример #5
0
        private async void CalculateRoute()
        {
            Geolocator  locator = new Geolocator();
            Geoposition geopos  = null;



            try
            {
                geopos = await locator.GetGeopositionAsync();

                Set_Map(geopos.Coordinate.Point, "Start");
                Geopoint eind = new Geopoint(new BasicGeoposition()
                {
                    Latitude  = current_spot.Latitude,
                    Longitude = current_spot.Longitude
                });
                MapRouteFinderResult result = await MapRouteFinder.GetWalkingRouteAsync(geopos.Coordinate.Point, eind);

                if (result.Status == MapRouteFinderStatus.Success)
                {
                    MapRouteView view = new MapRouteView(result.Route);
                    view.RouteColor   = Colors.Blue;
                    view.OutlineColor = Colors.Red;
                    MapControlLocation.Routes.Add(view);
                    await MapControlLocation.TrySetViewBoundsAsync(result.Route.BoundingBox, null, Windows.UI.Xaml.Controls.Maps.MapAnimationKind.Bow);
                }
            }
            catch (Exception ex)
            {
                ErrorMap();
            }
        }
Пример #6
0
        private async Task <MapRouteFinderResult> GetCarRouteAsync(Location loc1, Location loc2)
        {
            // Start at Source
            BasicGeoposition startLocation = new BasicGeoposition();

            startLocation.Latitude  = loc1.latitude;
            startLocation.Longitude = loc2.longitude;
            Geopoint point1 = new Geopoint(startLocation);

            //AddPushpin(point1, loc1.name, "ms-appx:///Assets/bluePin50.png");

            // End at Destination
            BasicGeoposition endLocation = new BasicGeoposition();

            endLocation.Latitude  = loc2.latitude;
            endLocation.Longitude = loc2.longitude;
            Geopoint point2 = new Geopoint(endLocation);

            //AddPushpin(point2, loc2.name, "ms-appx:///Assets/redPin50.png");

            // Get the route between the points.
            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetDrivingRouteAsync(
                    point1,
                    point2);


            return(routeResult);
        }
Пример #7
0
        //Here we get the user's position using C++
        //private async Task GetUserPositionCPlusPlus()
        //{
        //    var cPlusPlusClassInstance = new CppProj.Class1();
        //    var position = await cPlusPlusClassInstance.ReturnPosition();

        //    var x = position.Coordinate;
        //    var speed = position.Coordinate.Speed;
        //}

        private async void ShowPath()
        {
            if (path.Count >= 2)
            {
                foreach (var geoPoint in path)
                {
                    AddMarkerUserPos(geoPoint, timeUtility.GetTime(DateTime.Now));
                }

                MapRouteFinderResult routeResult = await MapRouteFinder.GetWalkingRouteFromWaypointsAsync(path);

                if (routeResult.Status == MapRouteFinderStatus.Success)
                {
                    MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                    viewOfRoute.RouteColor   = Colors.Yellow;
                    viewOfRoute.OutlineColor = Colors.Black;

                    MapControl1.Routes.Add(viewOfRoute);
                    MapControl1.ZoomLevel = 17;

                    await MapControl1.TrySetViewBoundsAsync(
                        routeResult.Route.BoundingBox,
                        null,
                        Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
                }
            }
        }
Пример #8
0
        private async void ShowRouteOnMap(Geopoint startPoint, Geopoint endPoint)
        {
            //Creates the coloured trail to guide the user using there GPS
            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(
                startPoint, endPoint,
                MapRouteOptimization.Time,
                MapRouteRestrictions.None);

            // Do the following if maps route is found
            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                myMap.Routes.Clear();
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Yellow;
                viewOfRoute.OutlineColor = Colors.Black;

                myMap.Routes.Add(viewOfRoute);
                await myMap.TrySetViewBoundsAsync(routeResult.Route.BoundingBox, null, MapAnimationKind.None);
            }
            else
            {
                // Handle the error of no map route
                var message = new MessageDialog("Can't find routes");
                await message.ShowAsync();
            }
        }
Пример #9
0
        private async void AddRouteView(Route route)
        {
            if (mapControl == null)
            {
                return;
            }

            var startLocation = route.StartLocation.ToBasicGeoposition();
            var endLocation   = route.EndLocation.ToBasicGeoposition();

            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetWalkingRouteAsync(
                    new Geopoint(startLocation),
                    new Geopoint(endLocation));

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                var routeView = new MapRouteView(routeResult.Route)
                {
                    RouteColor   = Windows.UI.Colors.Yellow,
                    OutlineColor = Windows.UI.Colors.Black,
                };

                mapControl.Routes.Add(routeView);

                renderedRoute.Add(route, routeView);
            }
        }
        private async void Plan_Route(Entidade e)
        {
            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(this.current, e.geo, MapRouteOptimization.Time, MapRouteRestrictions.None, 290);


            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                // Use the route to initialize a MapRouteView.
                try
                {
                    map1.Routes.RemoveAt(0);
                }
                catch
                {
                    //no route to remove
                }
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Blue;
                viewOfRoute.OutlineColor = Colors.Blue;
                // Add the new MapRouteView to the Routes collection
                // of the MapControl.
                map1.Routes.Add(viewOfRoute);
                // Fit the MapControl to the route.
                await map1.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    Windows.UI.Xaml.Controls.Maps.MapAnimationKind.Bow);
            }
        }
Пример #11
0
        public static async void ShowRoute(MapControl map, BasicGeoposition startLocation, BasicGeoposition endLocation)
        {
            //// Start at Microsoft in Redmond, Washington.
            //BasicGeoposition startLocation = new BasicGeoposition() { Latitude = 47.643, Longitude = -122.131 };

            //// End at the city of Seattle, Washington.
            //BasicGeoposition endLocation = new BasicGeoposition() { Latitude = 47.604, Longitude = -122.329 };


            // Get the route between the points.
            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetDrivingRouteAsync(
                    new Geopoint(startLocation),
                    new Geopoint(endLocation),
                    MapRouteOptimization.Time,
                    MapRouteRestrictions.None);

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                // Use the route to initialize a MapRouteView.
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Yellow;
                viewOfRoute.OutlineColor = Colors.Black;

                // Add the new MapRouteView to the Routes collection
                // of the MapControl.
                map.Routes.Add(viewOfRoute);

                // Fit the MapControl to the route.
                await map.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    MapAnimationKind.None);
            }
        }
Пример #12
0
        private async void FindRoutesAsync(object sender, RoutedEventArgs e)
        {
            if (ToASB.Text == string.Empty)
            {
                await new MessageDialog("Please enter the destination").ShowAsync();
            }
            if (FromASB.Text == string.Empty)
            {
                fromGeopoint = geopoint;
            }
            MapRouteFinderResult routeFinderResults = await MapRouteFinder.GetDrivingRouteAsync(fromGeopoint, toGeopoint, MapRouteOptimization.TimeWithTraffic, MapRouteRestrictions.None);

            if (routeFinderResults.Status == MapRouteFinderStatus.Success)
            {
                // Use the route to initialize a MapRouteView.
                MapRouteView viewOfRoute = new MapRouteView(routeFinderResults.Route);
                viewOfRoute.RouteColor   = Colors.Yellow;
                viewOfRoute.OutlineColor = Colors.Black;

                // Add the new MapRouteView to the Routes collection
                // of the MapControl.
                mapControl.Routes.Add(viewOfRoute);

                // Fit the MapControl to the route.
                await mapControl.TrySetViewBoundsAsync(
                    routeFinderResults.Route.BoundingBox,
                    null,
                    Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
            }
            else
            {
                await new MessageDialog("No route found").ShowAsync();
            }
        }
        private async void CinemaListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MyMap.Routes.Clear();
            ListView Lis = sender as ListView;
            CinemaRecommendViewModel _poi = Lis.DataContext as CinemaRecommendViewModel;

            if (Lis.SelectedIndex == -1)
            {
                return;
            }
            Pois poi = _poi.poiresult[Lis.SelectedIndex] as Pois;

            string[]         arr           = poi.location.Split(',');
            BasicGeoposition startLocation = new BasicGeoposition()
            {
                Latitude = myLocation.Position.Latitude, Longitude = myLocation.Position.Longitude
            };
            BasicGeoposition endLocation = new BasicGeoposition()
            {
                Latitude = Convert.ToDouble(arr[1]), Longitude = Convert.ToDouble(arr[0])
            };
            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(new Geopoint(startLocation), new Geopoint(endLocation), MapRouteOptimization.Time, MapRouteRestrictions.None);

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Yellow;
                viewOfRoute.OutlineColor = Colors.Black;
                MyMap.Routes.Add(viewOfRoute);
                await MyMap.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    MapAnimationKind.None);
            }
        }
Пример #14
0
        public override async Task <IEnumerable <Models.Geoposition> > CalculateRoute(Models.Geoposition from, Models.Geoposition to)
        {
            Geopoint nativeFrom = CoordinateConverter.ConvertToNative(from);
            Geopoint nativeTo   = CoordinateConverter.ConvertToNative(to);

            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(
                nativeFrom,
                nativeTo,
                MapRouteOptimization.Time,
                MapRouteRestrictions.None);

            List <Models.Geoposition>        result         = new List <Models.Geoposition>();
            IReadOnlyList <BasicGeoposition> routePositions = routeResult?.Route?.Path?.Positions;

            if (routePositions?.Any() == true)
            {
                foreach (BasicGeoposition position in routePositions)
                {
                    result.Add(new Models.Geoposition
                    {
                        Latitude  = position.Latitude,
                        Longitude = position.Longitude
                    });
                }
            }

            return(result);
        }
Пример #15
0
        /// <summary>
        /// Updates the travel distance and time info for the specified location, relative to the specified current location.
        /// </summary>
        /// <param name="location">The location to update.</param>
        /// <param name="currentLocation">The current location.</param>
        public static async Task UpdateTravelInfoAsync(LocationData location, LocationData currentLocation)
        {
            var routeResultTask = MapRouteFinder.GetDrivingRouteAsync(
                currentLocation.Geopoint, location.Geopoint,
                MapRouteOptimization.TimeWithTraffic, MapRouteRestrictions.None);
            var routeResultWithoutTrafficTask = MapRouteFinder.GetDrivingRouteAsync(
                currentLocation.Geopoint, location.Geopoint,
                MapRouteOptimization.Time, MapRouteRestrictions.None);

            MapRouteFinderResult routeResult = await routeResultTask;
            MapRouteFinderResult routeResultWithoutTraffic = await routeResultWithoutTrafficTask;

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                location.FastestRoute          = routeResult.Route;
                location.CurrentTravelDistance = Math.Round(routeResult.Route.LengthInMeters * 0.00062137, 1); // convert to miles
                location.CurrentTravelTime     = (int)routeResult.Route.EstimatedDuration.TotalMinutes;
                location.Timestamp             = DateTimeOffset.Now;
                if (routeResultWithoutTraffic.Status == MapRouteFinderStatus.Success)
                {
                    location.CurrentTravelTimeWithoutTraffic = routeResultWithoutTraffic.Route.EstimatedDuration.Minutes;
                }
                else
                {
                    // Fall back to the with-traffic value if the request fails.
                    location.CurrentTravelTimeWithoutTraffic = routeResult.Route.EstimatedDuration.Minutes;
                }
            }
            else
            {
                throw new Exception(routeFinderUnavailableMessage);
            }
        }
Пример #16
0
        private async System.Threading.Tasks.Task routeCreateAsync(Geopoint g1, Geopoint g2)
        {
            // Get the route between the points.
            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetWalkingRouteAsync(g1, g2);


            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                // Use the route to initialize a MapRouteView.
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Yellow;
                viewOfRoute.OutlineColor = Colors.Black;

                // Add the new MapRouteView to the Routes collection
                // of the MapControl.
                map.Routes.Add(viewOfRoute);

                // Fit the MapControl to the route.
                await map.TrySetViewBoundsAsync(
                    routeResult.Route.BoundingBox,
                    null,
                    Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
            }
        }
Пример #17
0
        private async void MapControl_Loaded(object sender, RoutedEventArgs e)
        {
            var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

            //Geopoint start = new Geopoint(new BasicGeoposition()
            //{
            //    Latitude = Convert.ToDouble(localSettings.Values["Event_startLatitude"]),
            //    Longitude = Convert.ToDouble(localSettings.Values["Event_startLongitude"]),
            //});
            //Geopoint end = new Geopoint(new BasicGeoposition()
            //{
            //    Latitude = Convert.ToDouble(localSettings.Values["Event_endLatitude"]),
            //    Longitude = Convert.ToDouble(localSettings.Values["Event_endLongitude"]),
            //});
            MapControl.Center           = _startGeopoint;
            MapControl.LandmarksVisible = true;
            MapControl.ZoomLevel        = 12;
            MapIcon startIcon = new MapIcon
            {
                Location = _startGeopoint,
                ZIndex   = 0
            };

            MapControl.MapElements.Add(startIcon);

            MapIcon endIcon = new MapIcon
            {
                Location = _endGeopoint,
                ZIndex   = 0
            };

            MapControl.MapElements.Add(endIcon);

            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(
                startIcon.Location,
                endIcon.Location,
                MapRouteOptimization.Time,
                MapRouteRestrictions.None
                );

            if (routeResult.Status != MapRouteFinderStatus.Success)
            {
                return;
            }
            MapRouteView viewOfRoute = new MapRouteView(routeResult.Route)
            {
                RouteColor   = Colors.Yellow,
                OutlineColor = Colors.Black
            };

            MapControl.Routes.Add(viewOfRoute);
            await MapControl.TrySetViewBoundsAsync(
                routeResult.Route.BoundingBox,
                null,
                Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
        }
Пример #18
0
        public static async Task <MapRoute> ResolveMapRouteAsync(Geopoint fromLocation, Geopoint toLocation)
        {
            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(
                fromLocation,
                toLocation,
                MapRouteOptimization.Time,
                MapRouteRestrictions.None);

            return(routeResult.Status == MapRouteFinderStatus.Success ? routeResult.Route : null);
        }
Пример #19
0
        public static async void DrawRoute(MapControl map, UwpUser user, UwpUser friend)
        {
            map.Routes.Clear();
            MapRouteFinderResult result = await MapRouteFinder.GetWalkingRouteAsync(user.Location, friend.Location);

            MapRouteView route = new MapRouteView(result.Route);

            route.RouteColor = Colors.Blue;
            map.Routes.Add(route);
        }
Пример #20
0
        /// <summary>
        /// Metoda odpowiedzialna za wyświetlanie trasy na mapie.
        /// </summary>
        private async Task Trasa(MapRouteFinderResult wynik)
        {
            MapRouteView droga = new MapRouteView(wynik.Route);

            droga.RouteColor   = Colors.Magenta;
            droga.OutlineColor = Colors.Black;

            mojaMapa.Routes.Add(droga);

            await mojaMapa.TrySetViewBoundsAsync(wynik.Route.BoundingBox, null, MapAnimationKind.None);
        }
Пример #21
0
        private async void MapControl_MapTapped(MapControl sender, MapInputEventArgs args)
        {
            Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            int icons             = Convert.ToInt32(localSettings.Values["icons"]);
            var tappedGeoPosition = args.Location.Position;

            tblock_latitude.Text  = tappedGeoPosition.Latitude.ToString();
            tblock_longitude.Text = tappedGeoPosition.Longitude.ToString();
            if ((icons > 1) && (_first != 0))
            {
                tb_Description.Text = icons.ToString();
                MapControl.MapElements.Clear();
                MapControl.Routes.Clear();
                icons = 0;
            }
            else
            {
                MapIcon icon = new MapIcon();
                icon.Location = new Geopoint(tappedGeoPosition);
                icon.ZIndex   = 0;
                MapControl.MapElements.Add(icon);
                icons++;
                _first++;
                if (icons == 1)
                {
                    _startLocation = icon.Location;
                }
                else
                {
                    _endLocation = icon.Location;
                    MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(
                        _startLocation,
                        _endLocation,
                        MapRouteOptimization.Time,
                        MapRouteRestrictions.None
                        );

                    if (routeResult.Status == MapRouteFinderStatus.Success)
                    {
                        MapRouteView viewOfRoute = new MapRouteView(routeResult.Route)
                        {
                            RouteColor   = Colors.Yellow,
                            OutlineColor = Colors.Black
                        };
                        MapControl.Routes.Add(viewOfRoute);
                        await MapControl.TrySetViewBoundsAsync(
                            routeResult.Route.BoundingBox,
                            null,
                            Windows.UI.Xaml.Controls.Maps.MapAnimationKind.None);
                    }
                }
            }
            localSettings.Values["icons"] = icons;
        }
        public async Task CalculateRouteAsync()
        {
            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetDrivingRouteAsync(
                    Location,
                    UserLocation,
                    MapRouteOptimization.Time,
                    MapRouteRestrictions.None);

            RouteView = new MapRouteView(routeResult.Route);
            Map.Routes.Add(RouteView);
        }
Пример #23
0
        private async void lsvCitas_ItemClick(object sender, ItemClickEventArgs e)
        {
            mapa.Routes.Remove(vistaRuta);

            var cita = e.ClickedItem as Cita;

            //Para mostrar una ruta, necesitamos el punto de inicio, que lo pondremos como el instituto
            BasicGeoposition bgInstituto = new BasicGeoposition()
            {
                Latitude = 37.373774,
                Longitude = -5.969034
            };
            Geopoint instituto = new Geopoint(bgInstituto);


            //Esto es una pista de dónde empezar a buscar la latitud y la longitud de la dirección del cliente
            BasicGeoposition pista = new BasicGeoposition();
            pista.Latitude = 40.416775;
            pista.Longitude = -3.703790;
            Geopoint madrid = new Geopoint(pista);

            //Nos devuelve las coordenadas
            MapLocationFinderResult result = await MapLocationFinder.FindLocationsAsync(cita.direccion, madrid);

            //Si encuentra la localización
            if (result.Status == MapLocationFinderStatus.Success)
            {
                //Esto es el BasicGeoposition con las coordenadas
                BasicGeoposition posicion = result.Locations[0].Point.Position;
                Geopoint centro = new Geopoint(posicion);

                //Intentamos buscar una ruta con coche del instituto a la dirección de destino
                MapRouteFinderResult ruta = await MapRouteFinder.GetDrivingRouteAsync(instituto, centro);
                if(ruta.Status == MapRouteFinderStatus.Success)
                {
                    //Si la encuentra, creamos la MapRouteView (que es lo que el MapControl acepta y se lo añadimos
                    vistaRuta = new MapRouteView(ruta.Route);
                    //También podemos cambiar el color de la línea de la ruta
                    vistaRuta.RouteColor = Colors.Red;
                    vistaRuta.OutlineColor = Colors.Black;

                    //Y se lo añadimos al MapControl
                    mapa.Routes.Add(vistaRuta);
                }
                
                //Ahora ponemos bien el mapa
                mapa.Center = centro;
                mapa.ZoomLevel = 17;
                
            }
            
        }
Пример #24
0
        private async void OnSuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
        {
            if (sender.ItemsSource == _failedMessageItemSource)
            {
                sender.Text = string.Empty;
                return;
            }

            var suggestion = args.SelectedItem as LocationSuggestion;

            _currentRouteResult = await MapRouteFinder.GetDrivingRouteAsync(CurrentPosition,
                                                                            suggestion.Location.Point);

            switch (_currentRouteResult.Status)
            {
            case MapRouteFinderStatus.Success:
                FocusResult.Visibility = Visibility.Visible;
                NavigationLabel.Text   = suggestion.Location.Address.Town;
                DescriptionLabel.Text  = suggestion.Location.Description;
                var thing = await NavigationServices.GetPlaceMetaData(suggestion.Location.Address.Town);

                break;

            case MapRouteFinderStatus.UnknownError:
                break;

            case MapRouteFinderStatus.InvalidCredentials:
                break;

            case MapRouteFinderStatus.NoRouteFound:
                break;

            case MapRouteFinderStatus.NoRouteFoundWithGivenOptions:
                break;

            case MapRouteFinderStatus.StartPointNotFound:
                break;

            case MapRouteFinderStatus.EndPointNotFound:
                break;

            case MapRouteFinderStatus.NoPedestrianRouteFound:
                break;

            case MapRouteFinderStatus.NetworkFailure:
                sender.ItemsSource = "No internet connection";
                break;

            case MapRouteFinderStatus.NotSupported:
                break;
            }
        }
Пример #25
0
        async private void OnPositionChanged(Geolocator sender, PositionChangedEventArgs e)
        {
            if (!tracking)
            {
                point = e.Position.Coordinate.Point;
                await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    icon.Location = point;
                });

                await myMap.TrySetViewAsync(point);
            }

            else
            {
                currentPoint = e.Position.Coordinate.Point;
                await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    icon.Location = currentPoint;
                });

                MapRouteFinderResult routeResult = await MapRouteFinder.GetWalkingRouteAsync(point, currentPoint);

                if (routeResult.Route == null)
                {
                    return;
                }
                if (routeResult.Status == MapRouteFinderStatus.Success)
                {
                    await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
                    {
                        //directionChanged
                        MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                        viewOfRoute.RouteColor   = Colors.Blue;
                        viewOfRoute.OutlineColor = Colors.Blue;
                        myMap.Routes.Add(viewOfRoute);
                    });

                    Distance += routeResult.Route.LengthInMeters;
                    point     = currentPoint;
                    await Dispatcher.RunAsync(
                        CoreDispatcherPriority.High,
                        () =>
                    {
                        distanceBlock.Text = Distance.ToString() + "m";
                    });

                    //distanceBlock.Text = Distance.ToString() + "m";
                }
                await myMap.TrySetViewAsync(currentPoint);
            }
        }
Пример #26
0
        public async void DrawRoute(Geopoint p1, Geopoint p2)
        {
            MapRouteFinderResult routeFinderResult = await MapRouteFinder.GetWalkingRouteAsync(p1, p2);

            if (routeFinderResult.Status == MapRouteFinderStatus.Success)
            {
                deleteRoutes();
                MapRouteView routeView = new MapRouteView(routeFinderResult.Route);
                routeView.RouteColor   = _routeColor;
                routeView.OutlineColor = _outlineColor;
                _map.Routes.Add(routeView);
            }
        }
Пример #27
0
        private async void GetDirection(Geopoint startPoint, Geopoint endPoint)
        {
            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(startPoint, endPoint, MapRouteOptimization.Time, MapRouteRestrictions.None);

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Salmon;
                viewOfRoute.OutlineColor = Colors.OrangeRed;
                MyMap.Routes.Add(viewOfRoute);
                await MyMap.TrySetViewBoundsAsync(routeResult.Route.BoundingBox, null, MapAnimationKind.Bow);
            }
        }
        private async void Directions_Click(object sender, RoutedEventArgs e)
        {
            var gl = new Geolocator()
            {
                DesiredAccuracy = PositionAccuracy.High
            };
            var location = await gl.GetGeopositionAsync(TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5));

            Geopoint startPoint = location.Coordinate.Point;

            Geopoint endPoint = new Geopoint(new BasicGeoposition()
            {
                Latitude = this.item.latitude, Longitude = this.item.longitude
            });

            MapRouteFinderResult routeResult = await MapRouteFinder.GetDrivingRouteAsync(startPoint, endPoint, MapRouteOptimization.Time, MapRouteRestrictions.None, 290);

            if (routeResult.Status == MapRouteFinderStatus.Success)
            {
                MapRouteView viewOfRoute = new MapRouteView(routeResult.Route);
                viewOfRoute.RouteColor   = Colors.Blue;
                viewOfRoute.OutlineColor = Colors.DarkBlue;
                map.Routes.Add(viewOfRoute);
                await map.TrySetViewBoundsAsync(routeResult.Route.BoundingBox, null, Windows.UI.Xaml.Controls.Maps.MapAnimationKind.Bow);

                System.Text.StringBuilder routeInfo = new System.Text.StringBuilder();

                routeInfo.Append("Total estimated time (minutes) = ");
                routeInfo.Append(routeResult.Route.EstimatedDuration.TotalMinutes.ToString());
                routeInfo.Append("\nTotal length (kilometers) = ");
                routeInfo.Append((routeResult.Route.LengthInMeters / 1000).ToString());

                routeInfo.Append("\n\nDIRECTIONS\n\n");

                foreach (MapRouteLeg leg in routeResult.Route.Legs)
                {
                    foreach (MapRouteManeuver maneuver in leg.Maneuvers)
                    {
                        routeInfo.AppendLine(maneuver.InstructionText);
                        routeInfo.AppendLine("\n");
                    }
                }

                this.item.routeinformation = routeInfo.ToString();
                Me.IsEnabled = true;

                /*
                 * var dialog = new MessageDialog(routeInfo.ToString());
                 * await dialog.ShowAsync();*/
            }
        }
Пример #29
0
        /// <summary>
        /// Event handler - updates user location after moved
        /// </summary>
        /// <param name="sender"> Object which indicates where the event occured </param>
        /// <param name="e"> An object that contains information about the event </param>
        async void UserGeolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
        {
            DrawUserPushPin(args);
            MapRouteFinderResult routeResult =
                await MapRouteFinder.GetDrivingRouteAsync(
                    CarPushpin.Location,
                    UserPushpin.Location,
                    MapRouteOptimization.Distance,
                    MapRouteRestrictions.None);

            //UserGeoposition.Coordinate.Latitude = args.Position.Coordinate.Latitude;
            // update GUI
            DistanceLeftLabel.Text = (routeResult.Route.LengthInMeters / METERS_TO_MILES).ToString(); // distance in miles
        }
Пример #30
0
        private async void StartNavigation(Request request)
        {
            var myPosition = await MapController.GetMyPosition();

            BasicGeoposition requestPosition = new BasicGeoposition()
            {
                Latitude  = request.Latitude,
                Longitude = request.Longitude
            };
            Geopoint             navigateTo = new Geopoint(requestPosition);
            MapRouteFinderResult route      = await MapController.GetRouteBetweenTwoPoints(myPosition, navigateTo);

            SetMapView(route);
        }