public static void ClipMapByRegion(IWorkspaceName iworkspaceName_0, IMap imap_0, IGeometry igeometry_0, IMap imap_1) { (new SelectionEnvironment()).CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew; IWorkspace workspace = (iworkspaceName_0 as IName).Open() as IWorkspace; TempAcceessBD tempAcceessBD = new TempAcceessBD(); tempAcceessBD.CreateTempDB(); IFeatureClass featureClass = tempAcceessBD.CreateFeatureClass(igeometry_0); for (int i = imap_0.LayerCount - 1; i >= 0; i--) { ILayer layer = imap_0.Layer[i]; if ((!layer.Visible ? false : layer is IFeatureLayer)) { try { IEnvelope areaOfInterest = layer.AreaOfInterest; ITopologicalOperator topologicalOperator = (ITopologicalOperator)((IClone)igeometry_0).Clone(); topologicalOperator.Simplify(); if (topologicalOperator.IsSimple) { topologicalOperator.Clip(areaOfInterest); } } catch (Exception exception) { } if (!igeometry_0.IsEmpty) { ClipHelper.ClipLayer(layer as IFeatureLayer, featureClass, (IFeatureWorkspace)workspace, imap_1); } } } Marshal.ReleaseComObject(workspace); workspace = null; }