Пример #1
0
 public static void FireEndZDEdit()
 {
     if (ZDEditTools.OnEndZDEdit != null)
     {
         ZDEditTools.OnEndZDEdit();
     }
 }
Пример #2
0
 public static void FireStartZDEdit()
 {
     if (ZDEditTools.OnStartZDEdit != null)
     {
         ZDEditTools.OnStartZDEdit();
     }
 }
Пример #3
0
        public static void UpdateFeatureGeometry(IFeature ifeature_0, IGeometry igeometry_0)
        {
            ZDEditTools.StartEditDateTime = DateTime.Now;
            IFeature feature = null;
            bool     flag    = ZDEditTools.Oids.IndexOf(ifeature_0.OID) == -1;
            bool     flag1   = flag;

            if (flag)
            {
                feature = ZDEditTools.WriteHistory(ifeature_0);
            }
            try
            {
                ifeature_0.Shape = igeometry_0;
                ifeature_0.Store();
                if (flag1)
                {
                    IFeature feature1 = ZDEditTools.ZDFeatureClass.CreateFeature();
                    RowOperator.CopyFeatureToFeature(ifeature_0, feature1);
                    ZDEditTools.Oids.Add(feature1.OID);
                    ZDEditTools.WriteHistoryLine(ifeature_0, feature1, feature, 3, ZDEditTools.StartEditDateTime);
                    ifeature_0.Delete();
                }
            }
            catch
            {
                if (feature != null)
                {
                    feature.Delete();
                }
            }
        }
Пример #4
0
 public static void FireAfterCreateZD(IRow irow_0)
 {
     if (ZDEditTools.OnAfterCreateZD != null)
     {
         ZDEditTools.OnAfterCreateZD(irow_0);
     }
 }
Пример #5
0
        private static void DeleteZD(IFeature ifeature_0)
        {
            ZDEditTools.StartEditDateTime = DateTime.Now;
            IFeature feature = ZDEditTools.WriteHistory(ifeature_0);

            ZDEditTools.WriteDelHistoryLine(ifeature_0, feature, 4, ZDEditTools.StartEditDateTime);
            ifeature_0.Delete();
        }
Пример #6
0
 private static void WriteHistoryLine(IFeature ifeature_0, List <IFeature> list_0, IFeature ifeature_1, int int_0,
                                      DateTime dateTime_0)
 {
     foreach (IFeature list0 in list_0)
     {
         ZDEditTools.WriteHistoryLine(ifeature_0, list0, ifeature_1, int_0, dateTime_0);
     }
 }
Пример #7
0
 public static void StopZDEdit()
 {
     ZDEditTools.Oids.Clear();
     Editor.SaveEditing();
     ZDEditTools.ZDFeatureLayer    = null;
     ZDEditTools.ZDFeatureClass    = null;
     ZDEditTools.ZDHisFeatureClass = null;
     ZDEditTools.FireEndZDEdit();
 }
Пример #8
0
        public static void DeletedSelectedZD(ICursor icursor_0)
        {
            List <IFeature> features = new List <IFeature>();

            for (IRow i = icursor_0.NextRow(); i != null; i = icursor_0.NextRow())
            {
                ZDEditTools.DeleteZD(i as IFeature);
            }
        }
Пример #9
0
        public static IFeature Union(ICursor icursor_0)
        {
            List <IFeature> features = new List <IFeature>();

            for (IRow i = icursor_0.NextRow(); i != null; i = icursor_0.NextRow())
            {
                features.Add(i as IFeature);
            }
            return(ZDEditTools.Union(features));
        }
Пример #10
0
        private static bool CheckLayerIsCanEditZD(IFeatureLayer ifeatureLayer_0)
        {
            bool flag  = ZDEditTools.LayerCanEdit(ifeatureLayer_0);
            bool flag1 = flag;

            if (flag)
            {
                flag1 = ZDRegister.IsZDFeatureClass(ifeatureLayer_0.FeatureClass);
            }
            return(flag1);
        }
Пример #11
0
        public static IFeature Union(IFeatureSelection ifeatureSelection_0)
        {
            ICursor cursor = null;

            ifeatureSelection_0.SelectionSet.Search(null, false, out cursor);
            IFeature feature = ZDEditTools.Union(cursor);

            ComReleaser.ReleaseCOMObject(cursor);
            cursor = null;
            return(feature);
        }
Пример #12
0
        public static IFeature CreateZD(IGeometry igeometry_0)
        {
            ZDEditTools.StartEditDateTime = DateTime.Now;
            IFeature igeometry0 = ZDEditTools.ZDFeatureClass.CreateFeature();

            igeometry0.Shape = igeometry_0;
            igeometry0.Store();
            ZDEditTools.WriteHistoryLine(igeometry0, null, 0, ZDEditTools.StartEditDateTime);
            ZDEditTools.Oids.Add(igeometry0.OID);
            return(igeometry0);
        }
Пример #13
0
        public static bool UpdateZDAttribute(IFeature ifeature_0, string string_0, object object_0,
                                             out IFeature ifeature_1)
        {
            ZDEditTools.StartEditDateTime = DateTime.Now;
            Editor.StartEditOperation();
            IWorkspace workspace = AppConfigInfo.GetWorkspace();

            if (!WorkspaceOperator.WorkspaceIsSame(workspace, Editor.EditWorkspace as IWorkspace))
            {
                (workspace as IWorkspaceEdit).StartEditOperation();
            }
            ifeature_1 = null;
            bool     flag    = ZDEditTools.Oids.IndexOf(ifeature_0.OID) == -1;
            IFeature feature = null;

            if (flag)
            {
                feature = ZDEditTools.WriteHistory(ifeature_0);
            }
            bool flag1 = true;

            try
            {
                ifeature_0.Value[ifeature_0.Fields.FindField(string_0)] = object_0;
                ifeature_0.Store();
                if (flag)
                {
                    IFeature feature1 = ZDEditTools.ZDFeatureClass.CreateFeature();
                    RowOperator.CopyFeatureToFeature(ifeature_0, feature1);
                    ZDEditTools.Oids.Add(feature1.OID);
                    ifeature_1 = feature1;
                    ZDEditTools.WriteHistoryLine(ifeature_0, feature1, feature, 5, ZDEditTools.StartEditDateTime);
                    ifeature_0.Delete();
                }
            }
            catch (Exception exception1)
            {
                Exception exception = exception1;
                if (feature != null)
                {
                    feature.Delete();
                }
                flag1 = false;
                MessageBox.Show("输入数据格式错误");
                // CErrorLog.writeErrorLog(null, exception, "");
            }
            if (!WorkspaceOperator.WorkspaceIsSame(workspace, Editor.EditWorkspace as IWorkspace))
            {
                (workspace as IWorkspaceEdit).StopEditOperation();
            }
            Editor.StopEditOperation();
            return(flag1);
        }
Пример #14
0
        private static void WriteHistoryLine(List <IFeature> list_0, IFeature ifeature_0, List <IFeature> list_1,
                                             int int_0, DateTime dateTime_0)
        {
            int num = 0;

            foreach (IFeature list0 in list_0)
            {
                int num1 = num;
                num = num1 + 1;
                ZDEditTools.WriteHistoryLine(list0, ifeature_0, list_1[num1], int_0, dateTime_0);
            }
        }
Пример #15
0
 public static void ChangeAttribute(IFeature ifeature_0, SortedList <string, object> sortedList_0)
 {
     ZDEditTools.StartEditDateTime = DateTime.Now;
     if (ZDEditTools.Oids.IndexOf(ifeature_0.OID) == -1)
     {
         ZDEditTools.Oids.Add(ifeature_0.OID);
         IFeature feature = ZDEditTools.WriteHistory(ifeature_0);
         ZDEditTools.WriteHistoryLine(ifeature_0, feature, 5, ZDEditTools.StartEditDateTime);
     }
     foreach (KeyValuePair <string, object> sortedList0 in sortedList_0)
     {
         RowOperator.SetFieldValue(ifeature_0, sortedList0.Key, sortedList0.Value);
     }
     ifeature_0.Store();
 }
Пример #16
0
        public static void StartZDEdit()
        {
            ZDEditTools.StartEditDateTime = DateTime.Now;
            IMap editMap = Editor.EditMap;
            List <IFeatureLayer> featureLayers = new List <IFeatureLayer>();

            for (int i = 0; i < editMap.LayerCount; i++)
            {
                ILayer layer = editMap.Layer[i];
                if (layer is IGroupLayer)
                {
                    ZDEditTools.CheckGroupLayerEdit(featureLayers, layer as ICompositeLayer);
                }
                else if (layer is IFeatureLayer)
                {
                    IFeatureLayer featureLayer = layer as IFeatureLayer;
                    if (ZDEditTools.CheckLayerIsCanEditZD(featureLayer))
                    {
                        featureLayers.Add(featureLayer);
                    }
                }
            }
            if (featureLayers.Count == 0)
            {
                MessageBox.Show("当前没有可编辑的宗地图层!");
            }
            else if (featureLayers.Count != 1)
            {
                frmSelectEditZD _frmSelectEditZD = new frmSelectEditZD()
                {
                    FeatureLayers = featureLayers
                };
                if (_frmSelectEditZD.ShowDialog() == DialogResult.OK)
                {
                    ZDEditTools.ZDFeatureLayer    = _frmSelectEditZD.SelectFeatureLayer;
                    ZDEditTools.ZDFeatureClass    = ZDEditTools.ZDFeatureLayer.FeatureClass;
                    ZDEditTools.ZDHisFeatureClass = ZDRegister.GetHistoryFeatureClass(ZDEditTools.ZDFeatureClass);
                    ZDEditTools.FireStartZDEdit();
                }
            }
            else
            {
                ZDEditTools.ZDFeatureLayer    = featureLayers[0];
                ZDEditTools.ZDFeatureClass    = ZDEditTools.ZDFeatureLayer.FeatureClass;
                ZDEditTools.ZDHisFeatureClass = ZDRegister.GetHistoryFeatureClass(ZDEditTools.ZDFeatureClass);
                ZDEditTools.FireStartZDEdit();
            }
        }
Пример #17
0
        public static List <IFeature> Split(IFeatureSelection ifeatureSelection_0, IPolyline ipolyline_0)
        {
            ICursor cursor;

            ifeatureSelection_0.SelectionSet.Search(null, false, out cursor);
            IFeature feature = cursor.NextRow() as IFeature;

            ComReleaser.ReleaseCOMObject(cursor);
            List <IFeature> features = new List <IFeature>();

            if (feature != null)
            {
                features = ZDEditTools.Split(feature, ipolyline_0);
            }
            return(features);
        }
Пример #18
0
        public static void DeletedSelectedZD(IMap imap_0, IFeatureLayer ifeatureLayer_0)
        {
            Editor.StartEditOperation();
            IWorkspace workspace = AppConfigInfo.GetWorkspace();

            if (!WorkspaceOperator.WorkspaceIsSame(workspace, Editor.EditWorkspace as IWorkspace))
            {
                (workspace as IWorkspaceEdit).StartEditOperation();
            }
            ZDEditTools.DeletedSelectedZD(ifeatureLayer_0 as IFeatureSelection);
            if (!WorkspaceOperator.WorkspaceIsSame(workspace, Editor.EditWorkspace as IWorkspace))
            {
                (workspace as IWorkspaceEdit).StopEditOperation();
            }
            Editor.StopEditOperation();
            imap_0.ClearSelection();
            (imap_0 as IActiveView).Refresh();
        }
Пример #19
0
 private static void CheckGroupLayerEdit(List <IFeatureLayer> list_0, ICompositeLayer icompositeLayer_0)
 {
     for (int i = 0; i < icompositeLayer_0.Count; i++)
     {
         ILayer layer = icompositeLayer_0.Layer[i];
         if (layer is IGroupLayer)
         {
             ZDEditTools.CheckGroupLayerEdit(list_0, layer as ICompositeLayer);
         }
         else if (layer is IFeatureLayer)
         {
             IFeatureLayer featureLayer = layer as IFeatureLayer;
             if (ZDEditTools.CheckLayerIsCanEditZD(featureLayer))
             {
                 list_0.Add(featureLayer);
             }
         }
     }
 }
Пример #20
0
 private static void CheckGroupLayer(List <IFeatureLayer> list_0, ICompositeLayer icompositeLayer_0)
 {
     for (int i = 0; i < icompositeLayer_0.Count; i++)
     {
         ILayer layer = icompositeLayer_0.Layer[i];
         if (layer is IGroupLayer)
         {
             ZDEditTools.CheckGroupLayer(list_0, layer as ICompositeLayer);
         }
         else if (layer is IFeatureLayer)
         {
             IFeatureLayer featureLayer = layer as IFeatureLayer;
             if (ZDRegister.IsZDFeatureClass((layer as IFeatureLayer).FeatureClass))
             {
                 list_0.Add(featureLayer);
             }
         }
     }
 }
Пример #21
0
        public static void DeletedSelectedZD(IFeatureSelection ifeatureSelection_0)
        {
            IEnumIDs ds = ifeatureSelection_0.SelectionSet.IDs;

            ds.Reset();
            int             num          = ds.Next();
            List <IFeature> features     = new List <IFeature>();
            IFeatureClass   featureClass = (ifeatureSelection_0 as IFeatureLayer).FeatureClass;

            while (num > 0)
            {
                features.Add(featureClass.GetFeature(num));
                num = ds.Next();
            }
            foreach (IFeature feature in features)
            {
                ZDEditTools.DeleteZD(feature);
            }
        }
Пример #22
0
        public static IFeature Union(List <IFeature> list_0)
        {
            ITopologicalOperator4 shapeCopy = null;
            IGeometry             geometry  = null;
            List <IFeature>       features  = new List <IFeature>();

            foreach (IFeature list0 in list_0)
            {
                features.Add(ZDEditTools.WriteHistory(list0));
                if (shapeCopy != null)
                {
                    geometry  = shapeCopy.Union(list0.ShapeCopy);
                    shapeCopy = geometry as ITopologicalOperator4;
                }
                else
                {
                    shapeCopy = list0.ShapeCopy as ITopologicalOperator4;
                }
            }
            IFeature feature = ZDEditTools.ZDFeatureClass.CreateFeature();

            feature.Shape = geometry;
            RowOperator.CopyFeatureAttributeToFeature(list_0[0], feature);
            feature.Store();
            (ZDEditTools.ZDFeatureClass as IDataset).Name.Split(new char[] { '.' });
            ZDHistoryTable zDHistoryTable = new ZDHistoryTable();

            ZDEditTools.StartEditDateTime = DateTime.Now;
            int num = 0;

            foreach (IFeature list01 in list_0)
            {
                int num1 = num;
                num = num1 + 1;
                ZDEditTools.WriteHistoryLine(list01, feature, features[num1], 1, ZDEditTools.StartEditDateTime);
                list01.Delete();
            }
            ZDEditTools.Oids.Add(feature.OID);
            return(feature);
        }
Пример #23
0
        public static List <IFeatureLayer> GetZDLayers(IMap imap_0)
        {
            List <IFeatureLayer> featureLayers = new List <IFeatureLayer>();

            for (int i = 0; i < imap_0.LayerCount; i++)
            {
                ILayer layer = imap_0.Layer[i];
                if (layer is IGroupLayer)
                {
                    ZDEditTools.CheckGroupLayer(featureLayers, layer as ICompositeLayer);
                }
                else if (layer is IFeatureLayer)
                {
                    IFeatureLayer featureLayer = layer as IFeatureLayer;
                    if (ZDRegister.IsZDFeatureClass((layer as IFeatureLayer).FeatureClass))
                    {
                        featureLayers.Add(featureLayer);
                    }
                }
            }
            return(featureLayers);
        }
Пример #24
0
        public static List <IFeature> Split(IFeatureClass ifeatureClass_0, IPolyline ipolyline_0)
        {
            ISpatialFilter spatialFilterClass = new SpatialFilter()
            {
                Geometry   = ipolyline_0,
                SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
            };
            IFeatureCursor  featureCursor = ifeatureClass_0.Search(spatialFilterClass, false);
            IFeature        feature       = featureCursor.NextFeature();
            List <IFeature> features      = new List <IFeature>();

            while (feature != null)
            {
                List <IFeature> features1 = ZDEditTools.Split(feature, ipolyline_0);
                if (features1.Count > 0)
                {
                    features.AddRange(features1);
                }
                feature = featureCursor.NextFeature();
            }
            ComReleaser.ReleaseCOMObject(featureCursor);
            return(features);
        }
Пример #25
0
 public static void Delete(IFeature ifeature_0)
 {
     ZDEditTools.DeleteZD(ifeature_0);
 }
Пример #26
0
        public static List <IFeature> Split(IFeature ifeature_0, IPolyline ipolyline_0)
        {
            IGeometry             geometry;
            IGeometry             geometry1;
            IFeature              feature;
            IFeature              feature1;
            List <IFeature>       features  = new List <IFeature>();
            ITopologicalOperator4 shapeCopy = ifeature_0.ShapeCopy as ITopologicalOperator4;
            IGeometry             geometry2 = shapeCopy.Intersect(ipolyline_0, esriGeometryDimension.esriGeometry0Dimension);
            List <IFeature>       features1 = new List <IFeature>();

            ZDEditTools.StartEditDateTime = DateTime.Now;
            if (geometry2.IsEmpty)
            {
                shapeCopy.Cut(ipolyline_0, out geometry, out geometry1);
                if ((geometry == null ? false : geometry1 != null))
                {
                    feature  = ZDEditTools.WriteHistory(ifeature_0);
                    feature1 = ZDEditTools.ZDFeatureClass.CreateFeature();
                    features.Add(feature1);
                    feature1.Shape = geometry;
                    RowOperator.CopyFeatureAttributeToFeature(ifeature_0, feature1);
                    feature1.Store();
                    ZDEditTools.Oids.Add(feature1.OID);
                    ZDEditTools.WriteHistoryLine(ifeature_0, feature1, feature, 2, ZDEditTools.StartEditDateTime);
                    feature1 = ZDEditTools.ZDFeatureClass.CreateFeature();
                    features.Add(feature1);
                    feature1.Shape = geometry1;
                    RowOperator.CopyFeatureAttributeToFeature(ifeature_0, feature1);
                    feature1.Store();
                    ZDEditTools.Oids.Add(feature1.OID);
                    ZDEditTools.WriteHistoryLine(ifeature_0, feature1, feature, 2, ZDEditTools.StartEditDateTime);
                    ifeature_0.Delete();
                }
            }
            else if ((!(geometry2 is IMultipoint) ? false : (geometry2 as IPointCollection).PointCount > 1))
            {
                ISpatialFilter spatialFilterClass = new SpatialFilter()
                {
                    Geometry   = ipolyline_0,
                    SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
                };
                IFeatureCursor featureCursor = (ifeature_0.Class as IFeatureClass).Search(spatialFilterClass, false);
                for (IFeature i = featureCursor.NextFeature(); i != null; i = featureCursor.NextFeature())
                {
                    if (i.OID != ifeature_0.OID)
                    {
                        features1.Add(i);
                    }
                }
                ComReleaser.ReleaseCOMObject(featureCursor);
                int    pointCount = (geometry2 as IPointCollection).PointCount;
                IPoint point      = (geometry2 as IPointCollection).Point[0];
                IPoint point1     = (geometry2 as IPointCollection).Point[pointCount - 1];
                foreach (IFeature feature2 in features1)
                {
                    ZDEditTools.HitTest(feature2, point);
                    ZDEditTools.HitTest(feature2, point1);
                }
                IGeometryCollection geometryCollection = shapeCopy.Cut2(ipolyline_0);
                DateTime            startEditDateTime  = ZDEditTools.StartEditDateTime;
                feature = ZDEditTools.WriteHistory(ifeature_0);
                for (int j = 0; j < geometryCollection.GeometryCount; j++)
                {
                    IGeometry geometry3 = geometryCollection.Geometry[j];
                    feature1 = ZDEditTools.ZDFeatureClass.CreateFeature();
                    features.Add(feature1);
                    feature1.Shape = geometry3;
                    RowOperator.CopyFeatureAttributeToFeature(ifeature_0, feature1);
                    feature1.Store();
                    ZDEditTools.Oids.Add(feature1.OID);
                    ZDEditTools.WriteHistoryLine(ifeature_0, feature1, feature, 2, startEditDateTime);
                }
                ifeature_0.Delete();
            }
            return(features);
        }
Пример #27
0
 static ZDEditTools()
 {
     ZDEditTools.old_acctor_mc();
 }