private void btnOffset_Click(object sender, EventArgs e) { //I go to find the layer and then loop through all of the features and rotate them var polygonLayer = (InMemoryFeatureLayer)mapView.FindFeatureLayer("PolygonLayer"); Collection <Feature> newFeatures = new Collection <Feature>(); PointShape center = polygonLayer.GetBoundingBox().GetCenterPoint(); foreach (var feature in polygonLayer.InternalFeatures) { // Here we need to clone the features and add them back to the layer PolygonShape shape = (PolygonShape)feature.GetShape(); shape.TranslateByOffset(2000, 2000); shape.Id = feature.Id; Feature newFeature = new Feature(shape); newFeature.ColumnValues.Add("DataPoint1", feature.ColumnValues["DataPoint1"]); newFeatures.Add(newFeature); } polygonLayer.InternalFeatures.Clear(); foreach (var feature in newFeatures) { polygonLayer.InternalFeatures.Add(feature); } // We are only going to refresh the one overlay that draws the polygons. This saves us having toe refresh the background data. mapView.Refresh(mapView.Overlays["PolygonOverlay"]); }