/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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(); }
/// <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; }
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; } }
/// <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; } }
/// <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; }
/// <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; } } }
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(); }