示例#1
0
        public static void ExtractSpecifyHRegFeatures(IWorkspaceName iworkspaceName_0, IMap imap_0,
                                                      IGeometry igeometry_0)
        {
            (new SelectionEnvironment()).CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew;
            IWorkspace workspace = (iworkspaceName_0 as IName).Open() as IWorkspace;

            for (int i = 0; i < imap_0.LayerCount; i++)
            {
                ILayer layer = imap_0.Layer[i];
                if (layer.Visible)
                {
                    if (layer is IGroupLayer)
                    {
                        ClipHelper.ExtractSpecifyHRegFeatures(workspace as IFeatureWorkspace, layer as ICompositeLayer,
                                                              igeometry_0);
                    }
                    if (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.ExtractSelectFeatureFormFeatureCursor(layer.Name,
                                                                             ClipHelper.searchFeatureFormLayer(layer, igeometry_0), (IFeatureWorkspace)workspace,
                                                                             igeometry_0);
                        }
                    }
                }
            }
            workspace = null;
        }
示例#2
0
 private static void ExtractSpecifyHRegFeatures(IFeatureWorkspace ifeatureWorkspace_0,
                                                ICompositeLayer icompositeLayer_0, IGeometry igeometry_0)
 {
     for (int i = 0; i < icompositeLayer_0.Count; i++)
     {
         ILayer layer = icompositeLayer_0.Layer[i];
         if (layer.Visible)
         {
             if (layer is IGroupLayer)
             {
                 ClipHelper.ExtractSpecifyHRegFeatures(ifeatureWorkspace_0, layer as ICompositeLayer, igeometry_0);
             }
             else if (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.ExtractSelectFeatureFormFeatureCursor(layer.Name,
                                                                      ClipHelper.searchFeatureFormLayer(layer, igeometry_0), ifeatureWorkspace_0, igeometry_0);
                 }
             }
         }
     }
 }