public override void OnDblClick() { IActiveView focusMap = (IActiveView)_context.FocusMap; if (SketchToolAssist.CurrentTask == null) { SketchToolAssist.EndSketch(false, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer); } else { SketchToolAssist.EndSketch(false, focusMap, null); } }
public override void OnDblClick() { IActiveView focusMap = (IActiveView)_context.FocusMap; if (SketchToolAssist.CurrentTask == null) { SketchToolAssist.EndSketch(false, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer); } else { SketchToolAssist.EndSketch(false, focusMap, null); } if (SketchToolAssist.TempLine != null) { if (frmProperties == null) { frmProperties = new frmLinePointProperties(_context); } DialogResult result = frmProperties.ShowDialog(); if (result != DialogResult.OK) { return; } IPointCollection pntCol = SketchToolAssist.TempLine as IPointCollection; int createCount = 0; for (int i = 0; i < pntCol.PointCount; i++) { IPoint point = pntCol.Point[i]; if (i == 0 && !_context.Config.IsAddStartPoint) { continue; } if (i == pntCol.PointCount - 1 && !_context.Config.IsAddEndPoint) { continue; } if ((i > 0 && i < pntCol.PointCount - 1) && !_context.Config.IsAddVertexPoint) { continue; } bool isClear = createCount == 0 ? true : false; CreateFeatureTool.CreateFeature(point, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer, isClear); createCount++; } } }
public override void OnDblClick() { IActiveView focusMap = (IActiveView)_context.FocusMap; if (SketchToolAssist.CurrentTask == null) { SketchToolAssist.EndSketch(false, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer); } else { SketchToolAssist.EndSketch(false, focusMap, null); } if (SketchToolAssist.TempLine != null) { if (frmProperties == null) { frmProperties = new frmAlongLineProperties(_context); } frmProperties.SetPolyline((IPolyline)SketchToolAssist.TempLine); DialogResult result = frmProperties.ShowDialog(); if (result != DialogResult.OK) { return; } IPolyline polyline = SketchToolAssist.TempLine as IPolyline; double dbp = 0; if (frmProperties.IsNOP) { dbp = polyline.Length / (frmProperties.NOP + 1); } else { dbp = frmProperties.Distance; } int createCount = 0; bool isClear = true; //create points at distance between points up to total length for (double d = dbp; d < polyline.Length; d += dbp) { IConstructPoint contructionPoint = new Point() as IConstructPoint; contructionPoint.ConstructAlong(polyline, esriSegmentExtension.esriNoExtension, d, false); isClear = createCount == 0 ? true : false; CreateFeatureTool.CreateFeature((IGeometry)contructionPoint, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer, isClear); createCount++; } if (frmProperties.IsEnds) { isClear = createCount == 0 ? true : false; CreateFeatureTool.CreateFeature(polyline.FromPoint, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer, isClear); CreateFeatureTool.CreateFeature(polyline.ToPoint, focusMap, Yutai.ArcGIS.Common.Editor.Editor.CurrentEditTemplate.FeatureLayer, false); } } }