// it's event When User Tap On List To Draw The Selected Polygon private void DrawPolygonById(object sender, ItemTappedEventArgs e) { listPolygon.SelectedItem = null; Models.Polygon polygon = e.Item as Models.Polygon; Polygons = JsonConvert.DeserializeObject <FeatureCollection>(polygon.Coordinates); DrawPolygon(); var pin = new Pin { Type = PinType.Place, Position = new Position(polygon.Latitude, polygon.Longitude), Label = " Cliked ", Address = polygon.Latitude + " X " + polygon.Longitude, }; pin.Position = new Position(polygon.Latitude, polygon.Longitude); map.Pins.Add(pin); tappedPage.CurrentPage = MapContent; }
private async void Map_OnTap(object sender, TapEventArgs e) { Position _position = new Position(); _position = e.Position; var pin = new Pin { Type = PinType.Place, Position = e.Position, Label = " Cliked ", Address = e.Position.Latitude + " X " + e.Position.Latitude, }; // Get Coordinates Polygon as json string then Deserialize it var jsonCoordinates = new Geojson().ReadGeoJson(pin); Polygons = JsonConvert.DeserializeObject <FeatureCollection>(jsonCoordinates); if (Polygons == null) { DependencyService.Get <SnackBar>().ShowSnackBar("There is no detected area"); return; } map.Pins.Add(pin); DrawPolygon(); string result = await DisplayPromptAsync("Info", "if you want to save this area ? enter name it", "OK", "CANCEL", keyboard : Keyboard.Text); if (result != null) { Models.Polygon polygon = new Models.Polygon(); polygon.PolygonName = result; polygon.Coordinates = jsonCoordinates; polygon.Latitude = _position.Latitude; polygon.Longitude = _position.Longitude; polygonViewModel.AddPolygon(polygon); listPolygon.ItemsSource = null; listPolygon.ItemsSource = polygonViewModel.Polygons; } }