IMapLevel Interface (ArcObjects .NET 10.6 SDK)
ArcObjects Help for .NET developers > ArcObjects namespaces > Display > ESRI.ArcGIS.Display > Interfaces > IM > IMapLevel Interface (ArcObjects .NET 10.6 SDK)
ArcObjects Library Reference (Display)  

IMapLevel Interface

Provides access to members that control the map level.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Use this interface to set up Symbol Level Drawing in ArcMap which allows you to achieve special drawing effects by giving you tight control over the drawing order of feature layer symbology.

When To Use

This interface is implemented by both layers and symbols.

Most commonly you will use this interface on layer symbols when you are setting up Symbol Level Drawing. Symbol Level Drawing is useful when creating large scale maps with intersecting and overlapping line features. For example, on a large scale reference map with intersecting highways and streets, Symbol Level Drawing helps you create high-quality representations of the street and highway street intersections.

To set up Symbol Level Drawing:

  1. Turn on Symbol Level Drawing using either for your layer using ISymbolLevels::UseSymbolLevels, or for your entire map using IMap::UseSymbolLevels.
  2. For each layer that you want to set up symbol levels for, access that layer's renderer using IGeoFeatureLayer::Renderer.
  3. Access your layer's symbols through the renderer.
  4. Using IMapLevel, set symbol levels on your layer's symbols. Symbols with MapLevel=0 draw first, then symbols with MapLevel=1, continuing until the highest MapLevel is reached. If two symbols have the same MapLevel, then the features drawn with these symbols are drawn in the normal layer order. A MapLevel of -1 for a multilayer symbol (MultiLayerMarkerSymbol, MultiLayerLineSymbol, MultiLayerFillSymbol) indicates that each of the symbol's individual layers are drawn with their individual MapLevel.

When this interface is implemented by a layer, it is used by the framework to communicate to a layer what the current symbol level being drawn is. Prior to ArcGIS 9.0, IGeoFeatureLayer::CurrentSymbolCurrentMapLevel was the only way to do this. At ArcGIS 9.0 and later versions, you can use either IMapLevel::Level or the property on IGeoFeatureLayer. IMapLevel is more useful because more layers implement this interface than IGeoFeatureLayer.


Name Description
Read/write property MapLevel Current map level for drawing multi-level symbols.

CoClasses that implement IMapLevel

CoClasses and Classes Description
ArrowMarkerSymbol A marker symbol created from a predefined arrow.
BasicFillSymbol Basic fill symbol object.
BasicLineSymbol Basic line symbol object.
BasicMarkerSymbol Basic marker symbol object.
CadAnnotationLayer (esriCarto) An Esri Cad annotation layer.
CadastralFabricSubLayer (esriCarto) Cadastral Fabric Feature Layer Object.
CadFeatureLayer (esriCarto) Esri CAD Feature Layer class.
CartographicLineSymbol A line symbol for drawing solid or dashed lines.
CharacterMarker3DSymbol (esri3DAnalyst) 3D Character Marker Symbol component.
CharacterMarkerSymbol A marker symbol based on a character from a font.
ColorRampSymbol (esriCarto) Esri ColorRampSymbol for raster rendering.
ColorSymbol (esriCarto) Esri ColorSymbol for raster rendering.
CoverageAnnotationLayer (esriCarto) An Esri coverage annotation layer.
DimensionLayer (esriCarto) A collection of properties for a dimension layer.
DotDensityFillSymbol Defines a dot density fill symbol, a data driven symbol commonly used with the dot density renderer.
FDOGraphicsLayer (esriCarto) A collection of properties for an annotation layer (feature data object graphics layer).
FeatureLayer (esriCarto) A collection of features and their visual representation.
GdbRasterCatalogLayer (esriCarto) Geodabase RasterCatalog source and display options.
GradientFillSymbol A fill symbol composed from a ramp of colors.
GroupLayer (esriCarto) A collection of layers that behaves like a single layer.
HashLineSymbol A line symbol for drawing hashed or slanted lines.
LineFillSymbol A fill symbol comprised of any of the supported line symbols.
Marker3DSymbol (esri3DAnalyst) 3D Marker Symbol component.
MarkerFillSymbol A fill symbol comprised of any of the supported marker symbols.
MarkerLineSymbol A line symbol composed of repeating markers.
MultiLayerFillSymbol A fill symbol that contains one or more layers.
MultiLayerLineSymbol A line symbol that contains one or more layers.
MultiLayerMarkerSymbol A marker symbol that contains one or more layers.
NALayer (esriNetworkAnalyst) The layer for defining, solving, and viewing network analysis results.
NetworkLayer (esriCarto) Esri Network Layer CoClass.
PictureFillSymbol A fill symbol based on either a BMP or an EMF picture.
PictureLineSymbol A line symbol composed of either a BMP or an EMF picture.
PictureMarkerSymbol A marker symbol based on either a BMP or an EMF picture.
ProcessLayer (esriGeoprocessing) A collection of process layers that behaves like a single layer.
RasterRGBSymbol (esriCarto) Esri RasterRGBSymbol for raster rendering.
RepresentationRule An object defining a representation rule.
SchematicLayer (esriSchematic) A Schematic layer object.
SimpleFillSymbol A fill symbol comprised from a predefined set of styles.
SimpleLine3DSymbol (esri3DAnalyst) Simple 3D Line Symbol component.
SimpleLineSymbol A line symbol comprised of a predefined set of styles.
SimpleMarker3DSymbol (esri3DAnalyst) Simple 3D Marker Symbol component.
SimpleMarkerSymbol A marker symbol comprised of a predefined set of styles.
TemporalFeatureLayer (esriTrackingAnalyst) Defines the coclass IDL parameters and attributes of the TemporalFeatureLayer COM object.
TextMarkerSymbol (esriTrackingAnalyst) Class used to create a text marker symbol used to symbolize point geometries.
TextSymbol A symbol that controls how text is displayed.
TextureFillSymbol (esri3DAnalyst) Texture Fill Symbol component.
TextureLineSymbol (esri3DAnalyst) Texture Line Symbol component.


Symbol levels appear in ArcMap in the SymbolLevelDialog. In map documents with symbol level drawing created prior to version 9.0, symbol levels appear in the AdvancedDrawingDialog.

.NET Related Topics

How to use symbol level drawing