ArcObjects Library Reference

Load Tactical Graphic Layer Snippet

Loads a FeatureClass as a MOLE Tactical Graphic Layer into the current IBasicMap (Map, Globe, or Scene).

[C#]

///<summary>Loads a FeatureClass as a MOLE Tactical Graphic Layer into the current IBasicMap (Map, Globe, or Scene).</summary>
///  
///<param name="featureClass">An IFeatureClass interface to load.</param>
///<param name="basicMap">An IBasicMap interface that is the Map, Scene, or Globe.</param>
///<param name="layerName">A System.String that the name to assign to the layer. Example: "Cities"</param>
///<param name="textSize">A System.Double that is the size of labels of graphics in the layer (in map units). Example: 0.5</param>
///<param name="symbolSize">A System.Double that is the size of graphics (primarily point graphics) in the layer (in map units). Example 0.5</param>
///<param name="useAffiliationColor">A System.Boolean that uses the affiliation color for graphic outline. Example: false</param>
///   
///<returns>An ILayer interface.</returns>
///   
///<remarks>Obtain a reference to the current IBasicMap.  An IBasicMap is used because it is common between a Map, Globe, and Scene (and their corresponding Engine Controls).</remarks>
public ESRI.ArcGIS.Carto.ILayer LoadTacticalGraphicLayer(ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass, ESRI.ArcGIS.Carto.IBasicMap basicMap, System.String layerName, System.Double textSize, System.Double symbolSize, System.Boolean useAffiliationColor)
{
  if ((featureClass == null) || (basicMap == null))
  {
    System.Diagnostics.Trace.WriteLine("Invalid parameter, aborting");
    return null;
  }

  ESRI.ArcGIS.Carto.IFeatureLayer featureLayer = new ESRI.ArcGIS.Carto.FeatureLayerClass();
  ESRI.ArcGIS.Carto.IGeoFeatureLayer geoFeatureLayer = featureLayer as ESRI.ArcGIS.Carto.IGeoFeatureLayer; // Dynamic Cast
  geoFeatureLayer.FeatureClass = featureClass;

  // Create a MOLE layer and attach the feature layer to it
  ESRI.ArcGIS.DefenseSolutions.ICachedGraphicFeatureLayer cachedGraphicFeatureLayer = new ESRI.ArcGIS.DefenseSolutions.TacticalGraphicLayerClass() as ESRI.ArcGIS.DefenseSolutions.ICachedGraphicFeatureLayer;
  cachedGraphicFeatureLayer.FeatureLayer = geoFeatureLayer;

  // create a collection of cache renderers
  ESRI.ArcGIS.DefenseSolutions.ICacheRendererCollection cachedRenderCollection = cachedGraphicFeatureLayer as ESRI.ArcGIS.DefenseSolutions.ICacheRendererCollection;

  ESRI.ArcGIS.DefenseSolutions.ICacheRenderer cacheRenderer = new ESRI.ArcGIS.DefenseSolutions.TacticalGraphic2525BRendererClass();

  cachedRenderCollection.AddRenderer(ref cacheRenderer, 0);

  ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer tacticalGraphicLayer = cachedGraphicFeatureLayer as ESRI.ArcGIS.DefenseSolutions.TacticalGraphicLayer;
  tacticalGraphicLayer.TextSize = textSize;
  tacticalGraphicLayer.UseAffiliationColor = useAffiliationColor;

  ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2 cachedGraphicLayer2 = cachedGraphicFeatureLayer as ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2;
  cachedGraphicLayer2.Size = symbolSize;

  ESRI.ArcGIS.Carto.ILayer layer = cachedGraphicFeatureLayer as ESRI.ArcGIS.Carto.ILayer;
  layer.Name = layerName;

  basicMap.AddLayer(layer);

  return layer;
}
[Visual Basic .NET]

'''<summary>Loads a FeatureClass as a MOLE Tactical Graphic Layer into the current IBasicMap (Map, Globe, or Scene).</summary>
'''  
'''<param name="featureClass">An IFeatureClass interface to load.</param>
'''<param name="basicMap">An IBasicMap interface that is the Map, Scene, or Globe.</param>
'''<param name="layerName">A System.String that the name to assign to the layer. Example: "Cities"</param>
'''<param name="textSize">A System.Double that is the size of labels of graphics in the layer (in map units). Example: 0.5</param>
'''<param name="symbolSize">A System.Double that is the size of graphics (primarily point graphics) in the layer (in map units). Example 0.5</param>
'''<param name="useAffiliationColor">A System.Boolean that uses the affiliation color for graphic outline. Example: false</param>
'''   
'''<returns>An ILayer interface.</returns>
'''   
'''<remarks>Obtain a reference to the current IBasicMap.  An IBasicMap is used because it is common between a Map, Globe, and Scene (and their corresponding Engine Controls).</remarks>
Public Function LoadTacticalGraphicLayer(ByVal featureClass As ESRI.ArcGIS.Geodatabase.IFeatureClass, ByVal basicMap As ESRI.ArcGIS.Carto.IBasicMap, ByVal layerName As System.String, ByVal textSize As System.Double, ByVal symbolSize As System.Double, ByVal useAffiliationColor As System.Boolean) As ESRI.ArcGIS.Carto.ILayer

  If (featureClass Is Nothing) OrElse (basicMap Is Nothing) Then
    System.Diagnostics.Trace.WriteLine("Invalid parameter, aborting")
    Return Nothing
  End If

  Dim geoFeatureLayer As ESRI.ArcGIS.Carto.IGeoFeatureLayer = New ESRI.ArcGIS.Carto.FeatureLayerClass
  geoFeatureLayer.FeatureClass = featureClass

  ' Create a MOLE layer and attach the feature layer to it
  Dim cachedGraphicFeatureLayer As ESRI.ArcGIS.DefenseSolutions.ICachedGraphicFeatureLayer = New ESRI.ArcGIS.DefenseSolutions.TacticalGraphicLayerClass
  cachedGraphicFeatureLayer.FeatureLayer = geoFeatureLayer

  ' create a collection of cache renderers
  Dim cacheRendererCollection As ESRI.ArcGIS.DefenseSolutions.ICacheRendererCollection = CType(cachedGraphicFeatureLayer, ESRI.ArcGIS.DefenseSolutions.ICacheRendererCollection) ' Explicit Cast
  Dim cacheRenderer As ESRI.ArcGIS.DefenseSolutions.ICacheRenderer = New ESRI.ArcGIS.DefenseSolutions.TacticalGraphic2525BRendererClass
  cacheRendererCollection.AddRenderer(cacheRenderer, 0)

  Dim tacticalGraphicLayer As ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer = CType(cachedGraphicFeatureLayer, ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer) ' Explicit Cast
  tacticalGraphicLayer.TextSize = textSize
  tacticalGraphicLayer.UseAffiliationColor = useAffiliationColor

  Dim cachedGraphicLayer2 As ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2 = CType(cachedGraphicFeatureLayer, ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2) ' Explicit Cast
  cachedGraphicLayer2.Size = symbolSize

  Dim layer As ESRI.ArcGIS.Carto.ILayer = CType(cachedGraphicFeatureLayer, ESRI.ArcGIS.Carto.ILayer) ' Explict Cast
  layer.Name = layerName
  basicMap.AddLayer(layer)

  Return layer

End Function


Additional Requirements
  • The code in this document requires the following References added to the Visual Studio project:
  • ESRI.ArcGIS.Carto
  • ESRI.ArcGIS.DefenseSolutions
  • ESRI.ArcGIS.Display
  • ESRI.ArcGIS.Geodatabase
  • ESRI.ArcGIS.System