private void offsetTranslateShape_Click(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer cityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["cityLimits"]; InMemoryFeatureLayer translatedLayer = (InMemoryFeatureLayer)layerOverlay.Layers["translatedLayer"]; // Query the cityLimits layer to get all the features cityLimits.Open(); var features = cityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns); cityLimits.Close(); // Translate the first feature's shape by the X and Y values on the UI in meters var translate = AreaBaseShape.TranslateByOffset(features[0].GetShape(), Convert.ToDouble(translateX.Text), Convert.ToDouble(translateY.Text), GeographyUnit.Meter, DistanceUnit.Meter); // Add the translated shape into translatedLayer to display the result. // If this were to be a permanent change to the cityLimits FeatureSource, you would modify the // underlying data using BeginTransaction and CommitTransaction instead. translatedLayer.InternalFeatures.Clear(); translatedLayer.InternalFeatures.Add(new Feature(translate)); // Redraw the layerOverlay to see the translated feature on the map layerOverlay.Refresh(); }