ArcMapAddinVisibility.ViewModels.TabBaseViewModel.AddTextToMap C# (CSharp) Метод

AddTextToMap() приватный Метод

private AddTextToMap ( string text, IGeometry geom, IColor color, bool IsTempGraphic = false, int size = 12 ) : string
text string
geom IGeometry
color IColor
IsTempGraphic bool
size int
Результат string
        internal string AddTextToMap(string text, IGeometry geom, IColor color, bool IsTempGraphic = false, int size = 12)
        {
            if (geom == null || ArcMap.Document == null || ArcMap.Document.FocusMap == null)
                return string.Empty;

            IElement element = null;

            geom.Project(ArcMap.Document.FocusMap.SpatialReference);

            if (geom.GeometryType == esriGeometryType.esriGeometryPoint)
            {
                var te = new TextElementClass() as ITextElement;
                te.Text = text;

                var ts = new TextSymbolClass();
                ts.Size = size;
                ts.VerticalAlignment = esriTextVerticalAlignment.esriTVACenter;
                ts.HorizontalAlignment = esriTextHorizontalAlignment.esriTHACenter;

                te.Symbol = ts;

                element = te as IElement;
            }

            if (element == null)
                return string.Empty;

            element.Geometry = geom;

            var mxdoc = ArcMap.Application.Document as IMxDocument;
            var av = mxdoc.FocusMap as IActiveView;
            var gc = av as IGraphicsContainer;

            // store guid
            var eprop = element as IElementProperties;
            eprop.Name = Guid.NewGuid().ToString();

            if (IsTempGraphic)
                TempGraphicsList.Add(eprop.Name);
            else
                MapGraphicsList.Add(eprop.Name);

            gc.AddElement(element, 0);

            av.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

            RaisePropertyChanged(() => HasMapGraphics);

            return eprop.Name;
        }