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); }
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; }
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))); }