protected virtual void OnFeatureDragging(FeatureDraggingEditInteractiveOverlayEventArgs e) { EventHandler <EventArgs> handler = FeatureDragging; if (handler != null) { handler(this, e); } }
protected virtual Feature DragFeatureCore(Feature sourceFeature, PointShape sourceControlPoint, PointShape targetControlPoint) { FeatureDraggingEditInteractiveOverlayEventArgs featureDraggingEditInteractiveOverlayEventArgs = new FeatureDraggingEditInteractiveOverlayEventArgs(sourceFeature, false, sourceControlPoint, targetControlPoint); OnFeatureDragging(featureDraggingEditInteractiveOverlayEventArgs); if (featureDraggingEditInteractiveOverlayEventArgs.Cancel) { return(sourceFeature); } double offsetDistanceX = targetControlPoint.X - sourceControlPoint.X; double offsetDistanceY = targetControlPoint.Y - sourceControlPoint.Y; BaseShape baseShape = BaseShape.TranslateByOffset(sourceFeature.GetShape(), offsetDistanceX, offsetDistanceY, GeographyUnit.Meter, DistanceUnit.Meter); baseShape.Id = sourceFeature.Id; Feature returnFeature = new Feature(baseShape, sourceFeature.ColumnValues); OnFeatureDragged(new FeatureDraggedEditInteractiveOverlayEventArgs(returnFeature)); return(returnFeature); }