private void DrawRoute(List <Models.Location> steps)
        {
            Map.RoutePins.Clear();
            Map.Pins.Clear();
            foreach (var coordinates in steps)
            {
                var position = new Position(coordinates.lat, coordinates.lng);
                var pin      = new CustomPin
                {
                    Position = position,
                    Label    = "Selected Address",
                    Type     = PinType.SavedPin
                };
                Map.RoutePins.Add(pin);
            }
            var firstPin = Map.RoutePins.First();
            var lastPin  = Map.RoutePins.Last();

            firstPin.Label    = "Store Address";
            lastPin.Label     = "Selected Address";
            firstPin.ImageUrl = "location_store_mall.png";
            lastPin.ImageUrl  = "location_person.png";
            Map.Pins.Add(firstPin);
            Map.Pins.Add(lastPin);
        }
Esempio n. 2
0
        public CustomMap()
        {
            RoutePins = new List <CustomPin>();
            var myStorePosition = new Position(41.0112841745965, 28.972308850524);

            MoveToRegion(MapSpan.FromCenterAndRadius(myStorePosition, Distance.FromKilometers(2)));
            AddRegionBorders();
            var pin = new CustomPin
            {
                Label    = "Store Address",
                Position = myStorePosition,
                Type     = PinType.SavedPin,
                ImageUrl = "location_store_mall.png"
            };

            RoutePins.Add(pin);
            Pins.Add(pin);
            MapClicked += OnMapClicked;
        }
Esempio n. 3
0
        private void OnMapClicked(object sender, MapClickedEventArgs e)
        {
            if (!AreaWithin(e.Position))
            {
                Application.Current.MainPage.DisplayAlert("Warning", "We cannot service your chosen region", "Okay");
                return;
            }

            if (BindingContext is SelectLocationPageViewModel selectLocationVm)
            {
                selectLocationVm.SelectedLocation = new Location {
                    lat = e.Position.Latitude, lng = e.Position.Longitude
                };
                selectLocationVm.SelectionMode = SelectLocationPageViewModel.AddressSelectionMode.Click;
            }

            if (RoutePins.Count > 1)
            {
                for (int i = 1; i < RoutePins.Count; i++)
                {
                    RoutePins.RemoveAt(i);
                }
                Pins.RemoveAt(1);
            }

            var pin = new CustomPin
            {
                Label    = "Selected Address",
                Position = e.Position,
                Type     = PinType.SavedPin,
                ImageUrl = "location_person.png"
            };

            RoutePins.Add(pin);
            Pins.Add(pin);

            MoveToRegion(MapSpan.FromCenterAndRadius(e.Position, Distance.FromKilometers(2)));
        }
        private void InsertPin(double latitude, double longtitude)
        {
            if (Map.RoutePins.Count > 1)
            {
                for (int i = 1; i < Map.RoutePins.Count; i++)
                {
                    Map.RoutePins.RemoveAt(i);
                }
                Map.Pins.RemoveAt(1);
            }
            var position = new Position(latitude, longtitude);
            var pin      = new CustomPin
            {
                Label    = "Selected Address",
                Position = position,
                Type     = PinType.SavedPin,
                ImageUrl = "location_person.png"
            };

            Map.RoutePins.Add(pin);
            Map.Pins.Add(pin);

            Map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(Map.Pins[1].Position.Latitude, Map.Pins[1].Position.Longitude), Distance.FromKilometers(2)));
        }