Пример #1
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();

            m_pCurrentLayer = DataEditCommon.g_pLayer;
            IFeatureLayer featureLayer = m_pCurrentLayer as IFeatureLayer;

            if (featureLayer == null)
            {
                MessageBox.Show(@"请选择绘制图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
            else
            {
                if (featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolyline)
                {
                    MessageBox.Show(@"请选择线状图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                    return;
                }
            }

            m_pMap = m_hookHelper.FocusMap;
        }
Пример #2
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            m_pCurrentLayer = DataEditCommon.g_pLayer;
            IFeatureLayer featureLayer = m_pCurrentLayer as IFeatureLayer;

            if (featureLayer == null)
            {
                MessageBox.Show(@"请选择绘制图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
            else
            {
                if (featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolyline &&
                    featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolygon || featureLayer.FeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
                {
                    MessageBox.Show(@"请选择线状图层或面状图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                    return;
                }
            }

            m_pMap  = m_hookHelper.FocusMap;
            m_pScrD = m_hookHelper.ActiveView.ScreenDisplay;
            m_pNewCircleFeedback = null;
        }
Пример #3
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            m_pMapControl = DataEditCommon.g_pMyMapCtrl;

            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            ///获得编辑目标图层
            m_pCurrentLayer = DataEditCommon.g_pLayer;
            pFeatureLayer   = m_pCurrentLayer as IFeatureLayer;
            if (pFeatureLayer == null)
            {
                MessageBox.Show(@"请选择绘制图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
            else
            {
                if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolyline && pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolygon || pFeatureLayer.FeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
                {
                    MessageBox.Show(@"请选择线状或面状图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                    return;
                }
            }

            m_pMap         = m_hookHelper.FocusMap;
            m_IsFirstPoint = true;
        }
Пример #4
0
        /// <summary>
        /// µã»÷ʼþ
        /// </summary>
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();

            m_pCurrentLayer = DataEditCommon.GetLayerByName(DataEditCommon.g_pMap, LayerNames.LAYER_ALIAS_MR_XianLuoZhu1);
            IFeatureLayer featureLayer = m_pCurrentLayer as IFeatureLayer;

            if (featureLayer == null)
            {
                MessageBox.Show(@"ÏÝÂäÖùͼ²ã¶ªÊ§£¡", "Ìáʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
            else
            {
                if (featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolygon)
                {
                    MessageBox.Show(@"ÏÝÂäÖùͼ²ã¶ªÊ§£¡", "Ìáʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                    return;
                }
            }

            m_pMap = m_hookHelper.FocusMap;
        }
Пример #5
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            IFeature     pFeature;
            IEnumFeature pEnumFeature;

            // Get a cursor on selected features
            IFeatureCursor cursor = null;

            pEnumFeature = DataEditCommon.g_pAxMapControl.Map.FeatureSelection as IEnumFeature;

            IFeatureLayer feaLayer = DataEditCommon.g_pLayer as IFeatureLayer;

            //pEnumFeature = DataEditCommon.g_engineEditor.EditSelection;
            //int selectionCnt = DataEditCommon.g_engineEditor.SelectionCount;
            //// 没有选中任何图形
            //if (selectionCnt <= 0)
            //{
            //    return;
            //}

            if (pEnumFeature == null)
            {
                return;
            }
            pEnumFeature.Reset();
            pFeature = pEnumFeature.Next();
            if (pFeature == null)
            {
                System.Windows.Forms.MessageBox.Show("请先选择要删除的图元!");
                return;
            }
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            DataEditCommon.g_engineEditor.StartOperation();
            //DataEditCommon.g_CurWorkspaceEdit.StartEditOperation();
            do
            {
                int    iFieldBID = pFeature.Fields.FindField(GIS_Const.FIELD_OBJECTID);//图层中对应绑定ID字段
                string sObjId    = pFeature.get_Value(iFieldBID).ToString();

                //pFeature.Delete();
                //RefreshModifyFeature((IObject)pFeature);

                DataEditCommon.DeleteFeatureByObjectId(feaLayer, sObjId);
                RefreshModifyFeature((IObject)pFeature);

                pFeature = pEnumFeature.Next();
            }while (pFeature != null);
            //DataEditCommon.g_CurWorkspaceEdit.StopEditOperation();
            DataEditCommon.g_engineEditor.StopOperation("Delete Feature");
            DataEditCommon.g_pMap.ClearSelection();
            DataEditCommon.g_pMyMapCtrl.ActiveView.Refresh();
        }
Пример #6
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            m_featureLayer = DataEditCommon.g_pLayer as IFeatureLayer;
            if (m_featureLayer == null)
            {
                MessageBox.Show(@"请选择图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
            DataEditCommon.g_engineEditLayers.SetTargetLayer(m_featureLayer, 0);

            DataEditCommon.g_pMyMapCtrl.CurrentTool = (ITool)m_command;
        }
Пример #7
0
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            ILayer        pLayer        = GIS.Common.DataEditCommon.g_pLayer;
            IFeatureLayer pFeatureLayer = (IFeatureLayer)pLayer;
            IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;

            if (pFeatureClass.FeatureType != esriFeatureType.esriFTAnnotation)
            {
                MessageBox.Show(@"请选择文字注记(标注)图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
        }
Пример #8
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();

            m_pCurrentLayer = DataEditCommon.g_pLayer;

            ///20140216 lyf
            m_featureLayer     = m_pCurrentLayer as IFeatureLayer;
            m_featureSelection = m_featureLayer as IFeatureSelection;
            m_selectionSet     = m_featureSelection.SelectionSet;//QI到ISelectionSet
            if (m_selectionSet.Count != 1)
            {
                MessageBox.Show(@"请选择一个图元再进行镜像。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
        }
Пример #9
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            m_pCurrentLayer = DataEditCommon.g_pLayer;
            IFeatureLayer featureLayer = m_pCurrentLayer as IFeatureLayer;

            if (featureLayer == null)
            {
                MessageBox.Show(@"请选择绘制图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                return;
            }
            else
            {
                //if (featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolyline)
                //{
                //    MessageBox.Show("请选择线状图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //    DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                //    return;
                //}
                if (featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolyline && featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolygon || featureLayer.FeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
                {
                    MessageBox.Show(@"请选择线状或面状图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
                    return;
                }
            }

            if (featureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)
            {
                m_bIsLineFeat = true;
            }
            else
            {
                m_bIsLineFeat = false;
            }

            m_pMap            = m_hookHelper.FocusMap;
            m_lMouseDownCount = 0;
        }
Пример #10
0
        /// <summary>
        /// 根据点坐标绘制点要素
        /// </summary>
        /// <params name="featureLayer"></params>
        /// <params name="point"></params>
        /// <params name="id"></params>
        /// <params name="wirePoint"></params>
        public void CreatePoint(IFeatureLayer featureLayer, IPoint point, string id, WirePoint wirePoint)
        {
            try
            {
                IFeatureClass featureClass = featureLayer.FeatureClass;
                IGeometry     geometry     = point;

                if (featureClass.ShapeType == esriGeometryType.esriGeometryPoint)
                {
                    IDataset       dataset       = (IDataset)featureClass;
                    IWorkspace     workspace     = dataset.Workspace;
                    IWorkspaceEdit workspaceEdit = workspace as IWorkspaceEdit;
                    DataEditCommon.CheckEditState();
                    workspaceEdit.StartEditOperation();
                    IFeature feature = featureClass.CreateFeature();

                    DrawCommon.HandleZMValue(feature, geometry);//几何图形Z值处理

                    feature.Shape = point;
                    feature.Value[feature.Fields.FindField(GIS_Const.FIELD_BID)]  = id;
                    feature.Value[feature.Fields.FindField(GIS_Const.FIELD_HDID)] = wirePoint.wire.tunnel.id;
                    feature.Value[feature.Fields.FindField(GIS_Const.FIELD_NAME)] = wirePoint.name;
                    feature.Value[feature.Fields.FindField(GIS_Const.FIELD_ID)]   = wirePoint.id;
                    feature.Store();
                    workspaceEdit.StopEditOperation();

                    IEnvelope envelop = point.Envelope;
                    DataEditCommon.g_pMyMapCtrl.ActiveView.Extent = envelop;
                    DataEditCommon.g_pMyMapCtrl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);
                }
                else
                {
                    MessageBox.Show(@"请选择点图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch
            {
                return;
            }
        }
Пример #11
0
 /// <summary>
 /// 点击事件
 /// </summary>
 public override void OnClick()
 {
     DataEditCommon.InitEditEnvironment(); //初始化编辑环境
     DataEditCommon.CheckEditState();      //检查编辑状态,启动编辑
     ///获得编辑目标图层
     m_featureLayer = DataEditCommon.g_pLayer as IFeatureLayer;
     if (m_featureLayer == null)
     {
         MessageBox.Show(@"请选择绘制图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
         DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
         return;
     }
     else
     {
         if (m_featureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint)
         {
             MessageBox.Show(@"请选择点状图层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             DataEditCommon.g_pMyMapCtrl.CurrentTool = null;
             return;
         }
     }
 }
Пример #12
0
        public override void OnMouseDown(int Button, int Shift, int X, int Y)
        {
            m_command.OnClick();
            m_hookHelper.ActiveView.Refresh();
            IPoint pPoint = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);

            pPoint = GIS.GraphicEdit.SnapSetting.getSnapPoint(pPoint);
            IFeatureLayer featureLayer = GIS.Common.DataEditCommon.copypasteLayer;

            if (featureLayer == null)
            {
                return;
            }
            IFeatureSelection m_featureSelection = featureLayer as IFeatureSelection;

            ESRI.ArcGIS.Geodatabase.ISelectionSet m_selectionSet = m_featureSelection.SelectionSet;
            if (m_selectionSet.Count == 0)
            {
                return;
            }
            IFeatureClass pFeatureClass = featureLayer.FeatureClass;
            ICursor       pCursor       = null;

            m_selectionSet.Search(null, false, out pCursor);
            IFeatureCursor pFeatureCursor = pCursor as IFeatureCursor;
            IFeature       m_pFeature     = pFeatureCursor.NextFeature();
            double         dx             = 0;
            double         dy             = 0;

            if (m_pFeature == null)
            {
                return;
            }
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            while (m_pFeature != null)
            {
                ITransform2D pTrans2D = m_pFeature.ShapeCopy as ITransform2D;
                if (m_pFeature.Shape.Dimension == esriGeometryDimension.esriGeometry0Dimension)
                {
                    IPoint pt = m_pFeature.Shape as IPoint;
                    if (dx == 0)
                    {
                        dx = pPoint.X - pt.X;
                    }
                    if (dy == 0)
                    {
                        dy = pPoint.Y - pt.Y;
                    }
                    pTrans2D.Move(dx, dy);
                    m_pFeature.Shape = pTrans2D as IGeometry;
                    m_pFeature.Store();
                }
                else if (m_pFeature.Shape.Dimension == esriGeometryDimension.esriGeometry1Dimension)
                {
                    IPolyline lPolyline = m_pFeature.Shape as IPolyline;
                    if (dx == 0)
                    {
                        dx = pPoint.X - lPolyline.FromPoint.X;
                    }
                    if (dy == 0)
                    {
                        dy = pPoint.Y - lPolyline.FromPoint.Y;
                    }
                    pTrans2D.Move(dx, dy);
                    m_pFeature.Shape = pTrans2D as IGeometry;
                    m_pFeature.Store();
                }
                else if (m_pFeature.Shape.Dimension == esriGeometryDimension.esriGeometry2Dimension)
                {
                    if (m_pFeature.FeatureType == esriFeatureType.esriFTAnnotation)
                    {
                        IAnnotationFeature annoFeature = m_pFeature as IAnnotationFeature;

                        IElement     element     = (IElement)annoFeature.Annotation;
                        ITextElement textElement = new TextElementClass();
                        IPoint       mPoint      = element.Geometry as IPoint;
                        pTrans2D = mPoint as ITransform2D;
                        if (dx == 0)
                        {
                            dx = pPoint.X - mPoint.X;
                        }
                        if (dy == 0)
                        {
                            dy = pPoint.Y - mPoint.Y;
                        }
                        pTrans2D.Move(dx, dy);
                        element.Geometry       = pTrans2D as IGeometry;
                        annoFeature.Annotation = element;
                        m_pFeature.Store();
                    }
                    else
                    {
                        IPolygon lPolyline = m_pFeature.Shape as IPolygon;
                        if (dx == 0)
                        {
                            dx = pPoint.X - lPolyline.FromPoint.X;
                        }
                        if (dy == 0)
                        {
                            dy = pPoint.Y - lPolyline.FromPoint.Y;
                        }
                        pTrans2D.Move(dx, dy);
                        m_pFeature.Shape = pTrans2D as IGeometry;
                        m_pFeature.Store();
                    }
                }
                else
                {
                }
                m_pFeature = pFeatureCursor.NextFeature();
            }
            DataEditCommon.g_engineEditor.StopOperation("editpaste");
            GIS.Common.DataEditCommon.copypaste = 0;
            DataEditCommon.copypasteLayer       = null;
            m_hookHelper.ActiveView.Refresh();
            //IPoint pPoint = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
            //pPoint = GIS.GraphicEdit.SnapSetting.getSnapPoint(pPoint);
            //IFeatureLayer featureLayer = DataEditCommon.g_pLayer as IFeatureLayer;
            //if (featureLayer == null) return;
            //if (DataEditCommon.MyCopy.m_featureLayer.FeatureClass.ShapeType == featureLayer.FeatureClass.ShapeType && DataEditCommon.MyCopy.m_featureLayer.FeatureClass.FeatureType == featureLayer.FeatureClass.FeatureType)
            //{
            //    ESRI.ArcGIS.Geodatabase.ISelectionSet m_selectionSet = DataEditCommon.MyCopy.m_selectionSet;
            //    for (int i = 0; i < m_selectionSet.Count; i++)
            //    {

            //    }
            //}
            //else if (DataEditCommon.MyCopy.m_featureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline && featureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon && featureLayer.FeatureClass.FeatureType != esriFeatureType.esriFTAnnotation)
            //{

            //}
            //else if (DataEditCommon.MyCopy.m_featureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon && DataEditCommon.MyCopy.m_featureLayer.FeatureClass.FeatureType!=esriFeatureType.esriFTAnnotation&& featureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)
            //{

            //}
            //DataEditCommon.InitEditEnvironment();
            //DataEditCommon.CheckEditState();
        }