Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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++;
                }
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }