This document is archived and information here might be outdated. Recommended version. |
ArcObjects Help for .NET developers > ESRI.ArcGIS.Snippets > Snippets > Create Tactical Graphic Snippet (ArcObjects .NET 10.4 SDK) |
Creates a MOLE Tactical Graphic as a CachedGraphic with the specified attributes.
///<summary>Creates a MOLE Tactical Graphic as a CachedGraphic with the specified attributes.</summary> /// ///<param name="cacheRendererCollection">An ICacheRendererCollection interface that is a collection of renderers.</param> ///<param name="display">An IDisplay interface. Preferably an ActiveView.ScreenDisplay.</param> ///<param name="symbolIdCode">A System.String that is Symbol ID Code (SIC) from MIL-STD-2525B / APP6a document. Example: "GFGPGLP-------X"</param> ///<param name="geometry">An IGeometry interface that is used to create graphic with (must match geometry required by corresponding Symbol Id Code in the standard.</param> ///<param name="propertySet">An IPropertySet interface that is used for creating graphic.</param> ///<param name="textSize">A System.Double that is the size of Text accompanying graphic(in Map Units). Example: 0.5</param> ///<param name="symbolSize">A System.Double that is the size of Symbol (in Map Units). Example: 0.5</param> ///<param name="useAffiliationColor">A System.Boolean that ignores Style's color and use affilition color.</param> ///<param name="useFonts">A System.Boolean if true, polygon text if false.</param> /// ///<returns>An ICachedGraphic interface with the specified attributes, Nothing if fails</returns> /// ///<remarks></remarks> public ESRI.ArcGIS.DefenseSolutions.ICachedGraphic CreateTacticalGraphic(ESRI.ArcGIS.DefenseSolutions.ICacheRendererCollection cachedRenderCollection, ESRI.ArcGIS.Display.IDisplay display, System.String symbolIdCode, ESRI.ArcGIS.Geometry.IGeometry geometry, ESRI.ArcGIS.esriSystem.IPropertySet propertySet, System.Double textSize, System.Double symbolSize, System.Boolean useAffiliationColor, System.Boolean useFonts) { // For more information on Symbol ID Codes see see: http://webhelp.esri.com/arcgisdesktop/9.1/body.cfm?tocVisable=1&ID=2778&TopicName=Symbol%20ID%20code ESRI.ArcGIS.DefenseSolutions.ICachedGraphic cachedGraphic=null; ESRI.ArcGIS.DefenseSolutions.ITacticalElement tacticalElement=new ESRI.ArcGIS.DefenseSolutions.TacticalElementClass(); tacticalElement.Shape=geometry; tacticalElement.MessageString=symbolIdCode; tacticalElement.PropertySet=propertySet; ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer tacticalGraphicRenderer; System.Boolean foundRendererForGraphic=false; System.Int32 count=cachedRenderCollection.RendererCount; for (System.Int32 i=0; i < count; i++) { // for each renderer, see if it can render the selected graphic tacticalGraphicRenderer=cachedRenderCollection.Renderer(i) as ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer; // Dynamic Cast if (tacticalGraphicRenderer.CanRenderTacticalElement(tacticalElement)) { // find the first renderer that can render it, and then use it foundRendererForGraphic=true; tacticalGraphicRenderer.TextSize=textSize; tacticalGraphicRenderer.UsesAffiliationColor=useAffiliationColor; ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer2 tacticalGraphicRenderer2=tacticalGraphicRenderer as ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer2; // Dynamic Cast if (tacticalGraphicRenderer2 != null) tacticalGraphicRenderer2.Size=symbolSize; if (tacticalGraphicRenderer.Style != null) tacticalGraphicRenderer.Style.UseFonts=useFonts; cachedGraphic=tacticalGraphicRenderer.GraphicByTacticalElement(display, tacticalElement); cachedGraphic.Geometry=geometry; cachedGraphic.Draw(display, null); break; } // if CanRenderTacticalElement } // for each renderer if ((cachedGraphic == null) || (!foundRendererForGraphic)) { System.Diagnostics.Trace.WriteLine("Could not render graphic with supplied properties."); } return cachedGraphic; }
'''<summary>Creates a MOLE Tactical Graphic as a CachedGraphic with the specified attributes.</summary> ''' '''<param name="cacheRendererCollection">An ICacheRendererCollection interface that is a collection of renderers.</param> '''<param name="display">An IDisplay interface. Preferably an ActiveView.ScreenDisplay.</param> '''<param name="symbolIdCode">A System.String that is Symbol ID Code (SIC) from MIL-STD-2525B / APP6a document. Example: "GFGPGLP-------X"</param> '''<param name="geometry">An IGeometry interface that is used to create graphic with (must match geometry required by corresponding Symbol Id Code in the standard.</param> '''<param name="propertySet">An IPropertySet interface that is used for creating graphic.</param> '''<param name="textSize">A System.Double that is the size of Text accompanying graphic(in Map Units). Example: 0.5</param> '''<param name="symbolSize">A System.Double that is the size of Symbol (in Map Units). Example: 0.5</param> '''<param name="useAffiliationColor">A System.Boolean that ignores Style's color and use affilition color.</param> '''<param name="useFonts">A System.Boolean if true, polygon text if false.</param> ''' '''<returns>An ICachedGraphic interface with the specified attributes, Nothing if fails</returns> ''' '''<remarks></remarks> Public Function CreateTacticalGraphic(ByVal cacheRendererCollection As ESRI.ArcGIS.DefenseSolutions.ICacheRendererCollection, ByVal display As ESRI.ArcGIS.Display.IDisplay, ByVal symbolIdCode As System.String, ByVal geometry As ESRI.ArcGIS.Geometry.IGeometry, ByVal propertySet As ESRI.ArcGIS.esriSystem.IPropertySet, ByVal textSize As System.Double, ByVal symbolSize As System.Double, ByVal useAffiliationColor As System.Boolean, ByVal useFonts As System.Boolean) As ESRI.ArcGIS.DefenseSolutions.ICachedGraphic ' For more information on Symbol ID Codes see see: http://webhelp.esri.com/arcgisdesktop/9.1/body.cfm?tocVisable=1&ID=2778&TopicName=Symbol%20ID%20code Dim cachedGraphic As ESRI.ArcGIS.DefenseSolutions.ICachedGraphic=Nothing Dim tacticalElement As ESRI.ArcGIS.DefenseSolutions.ITacticalElement=New ESRI.ArcGIS.DefenseSolutions.TacticalElementClass tacticalElement.Shape=geometry tacticalElement.MessageString=symbolIdCode tacticalElement.PropertySet=propertySet Dim tacticalGraphicRenderer As ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer Dim foundRendererForGraphic As System.Boolean=False Dim count As System.Int32=cacheRendererCollection.RendererCount Dim i As Integer=0 While i < count ' for each renderer, see if it can render the selected graphic tacticalGraphicRenderer=CType(cacheRendererCollection.Renderer(i), ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer) ' Explicit Cast If tacticalGraphicRenderer.CanRenderTacticalElement(tacticalElement) Then ' find the first renderer that can render it, and then use it foundRendererForGraphic=True tacticalGraphicRenderer.TextSize=textSize tacticalGraphicRenderer.UsesAffiliationColor=useAffiliationColor Dim tacticalGraphicRenderer2 As ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer2=CType(tacticalGraphicRenderer, ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicRenderer2) ' Explicit Cast If Not (tacticalGraphicRenderer2 Is Nothing) Then tacticalGraphicRenderer2.Size=symbolSize End If If Not (tacticalGraphicRenderer.Style Is Nothing) Then tacticalGraphicRenderer.Style.UseFonts=useFonts End If cachedGraphic=tacticalGraphicRenderer.GraphicByTacticalElement(display, tacticalElement) cachedGraphic.Geometry=geometry cachedGraphic.Draw(display, Nothing) i=count End If i=i + 1 End While If (cachedGraphic Is Nothing) OrElse (Not foundRendererForGraphic) Then System.Diagnostics.Trace.WriteLine("Could not render graphic with supplied properties.") End If Return cachedGraphic End Function