コード例 #1
0
ファイル: CreateFeatureTool.cs プロジェクト: secondii/Yutai
 public static void CreateDimensionFeature(IDimensionShape pDimensionShape, esriDimensionType pDimensionType,
                                           IActiveView pActiveView, IFeatureLayer pFeatureLayer)
 {
     if (pDimensionShape != null)
     {
         IWorkspaceEdit workspace = (IWorkspaceEdit)((IDataset)pFeatureLayer.FeatureClass).Workspace;
         workspace.StartEditOperation();
         IFeature     esriDimensionType0 = pFeatureLayer.FeatureClass.CreateFeature();
         IRowSubtypes rowSubtype         = (IRowSubtypes)esriDimensionType0;
         try
         {
             rowSubtype.InitDefaultValues();
         }
         catch (Exception exception)
         {
             //Logger.Current.Error("",exception, "");
             Logger.Current.Warn(exception.Message);
         }
         (esriDimensionType0 as IDimensionFeature).DimensionType  = pDimensionType;
         (esriDimensionType0 as IDimensionFeature).DimensionShape = pDimensionShape;
         EditorEvent.NewRow(esriDimensionType0);
         esriDimensionType0.Store();
         workspace.StopEditOperation();
         EditorEvent.AfterNewRow(esriDimensionType0);
         pActiveView.FocusMap.ClearSelection();
         pActiveView.FocusMap.SelectFeature(pFeatureLayer, esriDimensionType0);
         pActiveView.Refresh();
     }
 }
コード例 #2
0
ファイル: SketchShareEx.cs プロジェクト: secondii/Yutai
        public static string SketchMouseDown(IPoint ipoint_0, IActiveView iactiveView_0, IFeatureLayer ifeatureLayer_0)
        {
            INewPolylineFeedback feedback;
            string str;
            INewPolygonFeedbackEx newPolygonFeedbackEx;
            object value;
            INewPolylineFeedback newPolylineFeedback;
            double num;

            string[] strArrays;
            double   num1;
            double   length;

            if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.Line)
            {
                if (SketchToolAssist.Feedback != null)
                {
                    feedback = (INewPolylineFeedback)SketchToolAssist.Feedback;
                    feedback.AddPoint(SketchShareEx.m_pAnchorPoint);
                    object obj    = Missing.Value;
                    object value1 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchShareEx.m_pAnchorPoint, ref obj, ref value1);
                }
                else
                {
                    SketchShareEx.m_bInUse    = true;
                    SketchToolAssist.Feedback = new NewPolylineFeedback();
                    feedback = (INewPolylineFeedback)SketchToolAssist.Feedback;
                    SketchToolAssist.Feedback.Display = iactiveView_0.ScreenDisplay;
                    feedback.ChangeLineType((enumLineType)SketchToolAssist.LineType);
                    feedback.Start(SketchShareEx.m_pAnchorPoint);
                    SketchToolAssist.m_pPointColn = new Polyline();
                    object obj1   = Missing.Value;
                    object value2 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchShareEx.m_pAnchorPoint, ref obj1, ref value2);
                }
                str = "";
            }
            else if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.Fill)
            {
                if (SketchToolAssist.Feedback != null)
                {
                    newPolygonFeedbackEx = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                    newPolygonFeedbackEx.AddPoint(SketchShareEx.m_pAnchorPoint);
                    object obj2   = Missing.Value;
                    object value3 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchShareEx.m_pAnchorPoint, ref obj2, ref value3);
                }
                else
                {
                    SketchShareEx.m_bInUse            = true;
                    SketchToolAssist.Feedback         = new NewPolygonFeedbackEx();
                    newPolygonFeedbackEx              = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                    SketchToolAssist.Feedback.Display = iactiveView_0.ScreenDisplay;
                    newPolygonFeedbackEx.ChangeLineType((enumLineType)SketchToolAssist.LineType);
                    newPolygonFeedbackEx.Start(SketchShareEx.m_pAnchorPoint);
                    SketchToolAssist.m_pPointColn = new Polygon();
                    object obj3   = Missing.Value;
                    object value4 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchShareEx.m_pAnchorPoint, ref obj3, ref value4);
                }
                str = "";
            }
            else if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.Point)
            {
                SketchToolAssist.TempLine = SketchShareEx.m_pAnchorPoint;
                str = "";
            }
            else if (ifeatureLayer_0 == null)
            {
                str = "";
            }
            else if (ifeatureLayer_0.FeatureClass != null)
            {
                string str1 = "";
                string unit = "";
                SketchShareEx.IsFixDirection = false;
                SketchShareEx.IsFixLength    = false;
                if (SketchToolAssist.Feedback == null)
                {
                    if (ifeatureLayer_0.FeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
                    {
                        try
                        {
                            Editor.EditWorkspace.StartEditOperation();
                            IFeature feature    = ifeatureLayer_0.FeatureClass.CreateFeature();
                            int      num2       = 0;
                            object   fieldValue = Editor.CurrentEditTemplate.GetFieldValue("SymbolID");
                            if (fieldValue != null)
                            {
                                num2 = Convert.ToInt32(fieldValue);
                            }
                            ITextElement        textElement        = CreateFeatureTool.MakeTextElement("文本", 0, ipoint_0, num2);
                            IAnnotationFeature2 annotationFeature2 = feature as IAnnotationFeature2;
                            annotationFeature2.LinkedFeatureID   = -1;
                            annotationFeature2.AnnotationClassID = 0;
                            annotationFeature2.Annotation        = textElement as IElement;
                            EditorEvent.NewRow(feature);
                            feature.Store();
                            Editor.EditWorkspace.StopEditOperation();
                            EditorEvent.AfterNewRow(feature);
                            iactiveView_0.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                            iactiveView_0.FocusMap.ClearSelection();
                            iactiveView_0.FocusMap.SelectFeature(ifeatureLayer_0, feature);
                            iactiveView_0.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                        }
                        catch (Exception exception)
                        {
                            Logger.Current.Error("", exception, "");
                        }
                    }
                    else if (ifeatureLayer_0.FeatureClass.FeatureType != esriFeatureType.esriFTDimension)
                    {
                        value = Missing.Value;
                        switch (ifeatureLayer_0.FeatureClass.ShapeType)
                        {
                        case esriGeometryType.esriGeometryPoint:
                        {
                            CreateFeatureTool.CreateFeature(ipoint_0, iactiveView_0, ifeatureLayer_0);
                            break;
                        }

                        case esriGeometryType.esriGeometryMultipoint:
                        {
                            SketchShareEx.m_bInUse    = true;
                            SketchToolAssist.Feedback = new NewMultiPointFeedback();
                            INewMultiPointFeedback newMultiPointFeedback =
                                (INewMultiPointFeedback)SketchToolAssist.Feedback;
                            SketchToolAssist.Feedback.Display = iactiveView_0.ScreenDisplay;
                            SketchShareEx.m_pPointCollection  = new Multipoint();
                            newMultiPointFeedback.Start(SketchShareEx.m_pPointCollection, ipoint_0);
                            break;
                        }

                        case esriGeometryType.esriGeometryPolyline:
                        {
                            SketchShareEx.m_bInUse            = true;
                            SketchToolAssist.Feedback         = new NewPolylineFeedback();
                            newPolylineFeedback               = (INewPolylineFeedback)SketchToolAssist.Feedback;
                            SketchToolAssist.Feedback.Display = iactiveView_0.ScreenDisplay;
                            newPolylineFeedback.Start(ipoint_0);
                            SketchShareEx.PointCount      = 1;
                            SketchShareEx.StartPoint      = ipoint_0;
                            SketchToolAssist.m_pPointColn = new Polyline();
                            SketchToolAssist.m_pPointColn.AddPoint(ipoint_0, ref value, ref value);
                            unit = CommonHelper.GetUnit(iactiveView_0.FocusMap.MapUnits);
                            num  = CommonHelper.measureLength(ipoint_0, 1, ref SketchShareEx.m_pLastPoint1,
                                                              ref SketchShareEx.m_pEndPoint1, ref SketchShareEx.m_totalLength);
                            strArrays = new string[]
                            {
                                "距离 = ", num.ToString("0.###"), unit, ", 总长度 = ",
                                SketchShareEx.m_totalLength.ToString("0.###"), unit
                            };
                            str1 = string.Concat(strArrays);
                            break;
                        }

                        case esriGeometryType.esriGeometryPolygon:
                        {
                            SketchShareEx.m_bInUse    = true;
                            SketchToolAssist.Feedback = new NewPolygonFeedbackEx();
                            INewPolygonFeedbackEx feedback1 = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                            SketchToolAssist.Feedback.Display = iactiveView_0.ScreenDisplay;
                            feedback1.Start(ipoint_0);
                            SketchShareEx.PointCount      = 0;
                            SketchToolAssist.m_pPointColn = new Polygon();
                            SketchShareEx.StartPoint      = ipoint_0;
                            unit   = CommonHelper.GetUnit(iactiveView_0.FocusMap.MapUnits);
                            num1   = CommonHelper.measureArea(ipoint_0, 1, ref SketchToolAssist.m_pPointColn);
                            length = (SketchToolAssist.m_pPointColn as IPolygon).Length;
                            if (num1 <= 0)
                            {
                                break;
                            }
                            str1 = string.Format("周长 = {0:0.###} {1} ,总面积 = {2:0.###} 平方{1}", length, unit, num1);
                            break;
                        }
                        }
                    }
                    else
                    {
                        SketchToolAssist.Feedback = new NewDimensionFeedback();
                        try
                        {
                            (SketchToolAssist.Feedback as INewDimensionFeedback).ReferenceScale =
                                (iactiveView_0 as IMap).ReferenceScale;
                            (SketchToolAssist.Feedback as INewDimensionFeedback).ReferenceScaleUnits =
                                (iactiveView_0 as IMap).MapUnits;
                        }
                        catch
                        {
                        }
                        SketchToolAssist.Feedback.Display = iactiveView_0.ScreenDisplay;
                        (SketchToolAssist.Feedback as INewDimensionFeedback).Start(ipoint_0);
                        SketchShareEx.PointCount = 1;
                    }
                }
                else if (SketchToolAssist.Feedback is INewDimensionFeedback)
                {
                    SketchShareEx.PointCount = SketchShareEx.PointCount + 1;
                    (SketchToolAssist.Feedback as INewDimensionFeedback).AddPoint(ipoint_0);
                    if (SketchShareEx.PointCount == 3)
                    {
                        IDimensionShape dimensionShape = (SketchToolAssist.Feedback as INewDimensionFeedback).Stop();
                        CreateFeatureTool.CreateDimensionFeature(dimensionShape,
                                                                 (SketchToolAssist.Feedback as INewDimensionFeedback).DimensionType, iactiveView_0,
                                                                 ifeatureLayer_0);
                    }
                }
                else if (SketchToolAssist.Feedback is INewMultiPointFeedback)
                {
                    value = Missing.Value;
                    SketchShareEx.m_pPointCollection.AddPoint(ipoint_0, ref value, ref value);
                    (SketchToolAssist.Feedback as INewMultiPointFeedback).Start(SketchShareEx.m_pPointCollection,
                                                                                ipoint_0);
                }
                else if (SketchToolAssist.Feedback is INewLineFeedback)
                {
                    newPolylineFeedback = (INewPolylineFeedback)SketchToolAssist.Feedback;
                    value = Missing.Value;
                    newPolylineFeedback.AddPoint(ipoint_0);
                    SketchToolAssist.m_pPointColn.AddPoint(ipoint_0, ref value, ref value);
                    SketchShareEx.PointCount = SketchShareEx.PointCount + 1;
                    unit = CommonHelper.GetUnit(iactiveView_0.FocusMap.MapUnits);
                    num  = CommonHelper.measureLength(ipoint_0, 1, ref SketchShareEx.m_pLastPoint1,
                                                      ref SketchShareEx.m_pEndPoint1, ref SketchShareEx.m_totalLength);
                    strArrays = new string[]
                    {
                        "距离 = ", num.ToString("0.###"), unit, ", 总长度 = ", SketchShareEx.m_totalLength.ToString("0.###"),
                        unit
                    };
                    str1 = string.Concat(strArrays);
                }
                else if (SketchToolAssist.Feedback is INewPolygonFeedback)
                {
                    ((INewPolygonFeedbackEx)SketchToolAssist.Feedback).AddPoint(ipoint_0);
                    SketchShareEx.PointCount = SketchShareEx.PointCount + 1;
                    unit   = CommonHelper.GetUnit(iactiveView_0.FocusMap.MapUnits);
                    num1   = CommonHelper.measureArea(ipoint_0, 1, ref SketchToolAssist.m_pPointColn);
                    length = (SketchToolAssist.m_pPointColn as IPolygon).Length;
                    if (num1 > 0)
                    {
                        str1 = string.Format("周长 = {0:0.###} {1} ,总面积 = {2:0.###} 平方{1}", length, unit, num1);
                    }
                }
                if (SketchShareEx.LastPoint == null)
                {
                    SketchShareEx.LastPoint = new ESRI.ArcGIS.Geometry.Point();
                }
                SketchShareEx.LastPoint.PutCoords(ipoint_0.X, ipoint_0.Y);
                str = str1;
            }
            else
            {
                str = "";
            }
            return(str);
        }
コード例 #3
0
        public static string SketchMouseDown(IActiveView pActiveView, IFeatureLayer pFeatureLayer)
        {
            INewPolylineFeedback feedback;
            string str;
            INewPolygonFeedbackEx newPolygonFeedbackEx;
            object value;
            INewPolylineFeedback  newPolylineFeedback;
            INewPolygonFeedbackEx feedback1;
            double num;
            double length;

            if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.Line)
            {
                if (SketchToolAssist.Feedback != null)
                {
                    feedback = (INewPolylineFeedback)SketchToolAssist.Feedback;
                    feedback.AddPoint(SketchToolAssist.m_pAnchorPoint);
                    object obj    = Missing.Value;
                    object value1 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref obj, ref value1);
                }
                else
                {
                    SketchToolAssist.m_bInUse = true;
                    SketchToolAssist.Feedback = new NewPolylineFeedback() as IDisplayFeedback2;
                    feedback = (INewPolylineFeedback)SketchToolAssist.Feedback;
                    SketchToolAssist.Feedback.Display = pActiveView.ScreenDisplay;
                    feedback.ChangeLineType(SketchToolAssist.LineType);
                    feedback.Start(SketchToolAssist.m_pAnchorPoint);
                    SketchToolAssist.m_pPointColn = new Polyline();
                    object obj1   = Missing.Value;
                    object value2 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref obj1, ref value2);
                }
                str = "";
            }
            else if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.Fill)
            {
                if (SketchToolAssist.Feedback != null)
                {
                    newPolygonFeedbackEx = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                    newPolygonFeedbackEx.AddPoint(SketchToolAssist.m_pAnchorPoint);
                    object obj2   = Missing.Value;
                    object value3 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref obj2, ref value3);
                }
                else
                {
                    SketchToolAssist.m_bInUse         = true;
                    SketchToolAssist.Feedback         = new NewPolygonFeedbackEx();
                    newPolygonFeedbackEx              = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                    SketchToolAssist.Feedback.Display = pActiveView.ScreenDisplay;
                    newPolygonFeedbackEx.ChangeLineType(SketchToolAssist.LineType);
                    newPolygonFeedbackEx.Start(SketchToolAssist.m_pAnchorPoint);
                    SketchToolAssist.m_pPointColn = new Polygon();
                    object obj3   = Missing.Value;
                    object value4 = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref obj3, ref value4);
                }
                str = "";
            }
            else if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.Point)
            {
                SketchToolAssist.TempLine = SketchToolAssist.m_pAnchorPoint;
                str = "";
            }
            else if (pFeatureLayer == null)
            {
                str = "";
            }
            else if (pFeatureLayer.FeatureClass != null)
            {
                string str1 = "";
                string unit = "";
                SketchToolAssist.IsFixDirection = false;
                SketchToolAssist.IsFixLength    = false;
                if (SketchToolAssist.Feedback == null)
                {
                    if (pFeatureLayer.FeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
                    {
                        try
                        {
                            Editor.EditWorkspace.StartEditOperation();
                            IFeature     feature     = pFeatureLayer.FeatureClass.CreateFeature();
                            ITextElement textElement = CreateFeatureTool.MakeTextElement("文本", 0,
                                                                                         SketchToolAssist.m_pAnchorPoint);
                            IAnnotationFeature2 annotationFeature2 = feature as IAnnotationFeature2;
                            annotationFeature2.LinkedFeatureID   = -1;
                            annotationFeature2.AnnotationClassID = 0;
                            annotationFeature2.Annotation        = textElement as IElement;
                            EditorEvent.NewRow(feature);
                            feature.Store();
                            Editor.EditWorkspace.StopEditOperation();
                            EditorEvent.AfterNewRow(feature);
                            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                            pActiveView.FocusMap.ClearSelection();
                            pActiveView.FocusMap.SelectFeature(pFeatureLayer, feature);
                            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                        }
                        catch (Exception exception)
                        {
                            Logger.Current.Error("", exception, "");
                        }
                    }
                    else if (pFeatureLayer.FeatureClass.FeatureType != esriFeatureType.esriFTDimension)
                    {
                        value = Missing.Value;
                        switch (pFeatureLayer.FeatureClass.ShapeType)
                        {
                        case esriGeometryType.esriGeometryPoint:
                        {
                            CreateFeatureTool.CreateFeature(SketchToolAssist.m_pAnchorPoint, pActiveView,
                                                            pFeatureLayer);
                            break;
                        }

                        case esriGeometryType.esriGeometryMultipoint:
                        {
                            SketchToolAssist.m_bInUse = true;
                            SketchToolAssist.Feedback = new NewMultiPointFeedback();
                            INewMultiPointFeedback newMultiPointFeedback =
                                (INewMultiPointFeedback)SketchToolAssist.Feedback;
                            SketchToolAssist.Feedback.Display   = pActiveView.ScreenDisplay;
                            SketchToolAssist.m_pPointCollection = new Multipoint();
                            newMultiPointFeedback.Start(SketchToolAssist.m_pPointCollection,
                                                        SketchToolAssist.m_pAnchorPoint);
                            break;
                        }

                        case esriGeometryType.esriGeometryPolyline:
                        {
                            SketchToolAssist.m_bInUse = true;
                            SketchToolAssist.Feedback = new NewPolylineFeedback();
                            newPolylineFeedback       = (INewPolylineFeedback)SketchToolAssist.Feedback;
                            newPolylineFeedback.ChangeLineType(SketchToolAssist.LineType);
                            SketchToolAssist.Feedback.Display = pActiveView.ScreenDisplay;
                            newPolylineFeedback.Start(SketchToolAssist.m_pAnchorPoint);
                            SketchToolAssist.m_PointCount = 1;
                            SketchToolAssist.StartPoint   = SketchToolAssist.m_pAnchorPoint;
                            SketchToolAssist.m_pPointColn = new Polyline();
                            SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref value,
                                                                   ref value);
                            unit = CommonHelper.GetUnit(pActiveView.FocusMap.MapUnits);
                            break;
                        }

                        case esriGeometryType.esriGeometryPolygon:
                        {
                            SketchToolAssist.m_bInUse = true;
                            SketchToolAssist.Feedback = new NewPolygonFeedbackEx();
                            feedback1 = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                            feedback1.ChangeLineType(SketchToolAssist.LineType);
                            SketchToolAssist.Feedback.Display = pActiveView.ScreenDisplay;
                            feedback1.Start(SketchToolAssist.m_pAnchorPoint);
                            SketchToolAssist.m_PointCount = 0;
                            SketchToolAssist.m_pPointColn = new Polygon();
                            SketchToolAssist.StartPoint   = SketchToolAssist.m_pAnchorPoint;
                            unit = CommonHelper.GetUnit(pActiveView.FocusMap.MapUnits);
                            num  = CommonHelper.measureArea(SketchToolAssist.m_pAnchorPoint, 1,
                                                            ref SketchToolAssist.m_pPointColn);
                            length = (SketchToolAssist.m_pPointColn as IPolygon).Length;
                            if (num <= 0)
                            {
                                break;
                            }
                            str1 = string.Format("周长 = {0:0.###} {1} ,总面积 = {2:0.###} 平方{1}", length, unit, num);
                            break;
                        }
                        }
                    }
                    else
                    {
                        SketchToolAssist.Feedback = new NewDimensionFeedback();
                        try
                        {
                            (SketchToolAssist.Feedback as INewDimensionFeedback).ReferenceScale =
                                (pActiveView as IMap).ReferenceScale;
                            (SketchToolAssist.Feedback as INewDimensionFeedback).ReferenceScaleUnits =
                                (pActiveView as IMap).MapUnits;
                        }
                        catch
                        {
                        }
                        SketchToolAssist.Feedback.Display = pActiveView.ScreenDisplay;
                        (SketchToolAssist.Feedback as INewDimensionFeedback).Start(SketchToolAssist.m_pAnchorPoint);
                        SketchToolAssist.m_PointCount = 1;
                    }
                }
                else if (SketchToolAssist.Feedback is INewDimensionFeedback)
                {
                    SketchToolAssist.m_PointCount = SketchToolAssist.m_PointCount + 1;
                    (SketchToolAssist.Feedback as INewDimensionFeedback).AddPoint(SketchToolAssist.m_pAnchorPoint);
                    if (SketchToolAssist.m_PointCount == 3)
                    {
                        IDimensionShape dimensionShape = (SketchToolAssist.Feedback as INewDimensionFeedback).Stop();
                        CreateFeatureTool.CreateDimensionFeature(dimensionShape,
                                                                 (SketchToolAssist.Feedback as INewDimensionFeedback).DimensionType, pActiveView,
                                                                 pFeatureLayer);
                    }
                }
                else if (SketchToolAssist.Feedback is INewMultiPointFeedback)
                {
                    value = Missing.Value;
                    SketchToolAssist.m_pPointCollection.AddPoint(SketchToolAssist.m_pAnchorPoint, ref value, ref value);
                    (SketchToolAssist.Feedback as INewMultiPointFeedback).Start(SketchToolAssist.m_pPointCollection,
                                                                                SketchToolAssist.m_pAnchorPoint);
                }
                else if (SketchToolAssist.Feedback is INewLineFeedback)
                {
                    newPolylineFeedback = (INewPolylineFeedback)SketchToolAssist.Feedback;
                    value = Missing.Value;
                    newPolylineFeedback.AddPoint(SketchToolAssist.m_pAnchorPoint);
                    SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref value, ref value);
                    SketchToolAssist.m_PointCount = SketchToolAssist.m_PointCount + 1;
                    unit = CommonHelper.GetUnit(pActiveView.FocusMap.MapUnits);
                }
                else if (SketchToolAssist.Feedback is INewPolygonFeedback)
                {
                    feedback1 = (INewPolygonFeedbackEx)SketchToolAssist.Feedback;
                    feedback1.AddPoint(SketchToolAssist.m_pAnchorPoint);
                    SketchToolAssist.m_PointCount = SketchToolAssist.m_PointCount + 1;
                    unit   = CommonHelper.GetUnit(pActiveView.FocusMap.MapUnits);
                    num    = CommonHelper.measureArea(SketchToolAssist.m_pAnchorPoint, 1, ref SketchToolAssist.m_pPointColn);
                    length = (SketchToolAssist.m_pPointColn as IPolygon).Length;
                    if (num > 0)
                    {
                        str1 = string.Format("周长 = {0:0.###} {1} ,总面积 = {2:0.###} 平方{1}", length, unit, num);
                    }
                    object value5 = Missing.Value;
                    object obj5   = Missing.Value;
                    SketchToolAssist.m_pPointColn.AddPoint(SketchToolAssist.m_pAnchorPoint, ref value5, ref obj5);
                }
                if (SketchToolAssist.LastPoint == null)
                {
                    SketchToolAssist.LastPoint = new ESRI.ArcGIS.Geometry.Point();
                }
                SketchToolAssist.LastPoint.PutCoords(SketchToolAssist.m_pAnchorPoint.X,
                                                     SketchToolAssist.m_pAnchorPoint.Y);
                str = str1;
            }
            else
            {
                str = "";
            }
            return(str);
        }