com.esri.arcgis.display
Interface IMapLevel

All Superinterfaces:
Serializable
All Known Implementing Classes:
ArrowMarkerSymbol, BasicFillSymbol, BasicLineSymbol, BasicMarkerSymbol, CadAnnotationLayer, CadastralFabricSubLayer, CadFeatureLayer, CartographicLineSymbol, CharacterMarker3DSymbol, CharacterMarkerSymbol, ColorRampSymbol, ColorSymbol, CoverageAnnotationLayer, DimensionLayer, DotDensityFillSymbol, FDOGraphicsLayer, FeatureLayer, GdbRasterCatalogLayer, GradientFillSymbol, GroupLayer, HashLineSymbol, IMapLevelProxy, LineFillSymbol, Marker3DSymbol, MarkerFillSymbol, MarkerLineSymbol, MultiLayerFillSymbol, MultiLayerLineSymbol, MultiLayerMarkerSymbol, NALayer, NetworkLayer, PictureFillSymbol, PictureLineSymbol, PictureMarkerSymbol, ProcessLayer, RasterRGBSymbol, RepresentationRule, SchematicLayer, SimpleFillSymbol, SimpleLine3DSymbol, SimpleLineSymbol, SimpleMarker3DSymbol, SimpleMarkerSymbol, TemporalFeatureLayer, TextMarkerSymbol, TextSymbol, TextureFillSymbol, TextureLineSymbol

public interface IMapLevel
extends Serializable

Provides access to members that control the map level.

Description

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.

Remarks

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.

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.

Product Availability

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


Method Summary
 int getMapLevel()
          Current map level for drawing multi-level symbols.
 void setMapLevel(int mapLevel)
          Current map level for drawing multi-level symbols.
 

Method Detail

getMapLevel

int getMapLevel()
                throws IOException,
                       AutomationException
Current map level for drawing multi-level symbols.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Returns:
The mapLevel
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMapLevel

void setMapLevel(int mapLevel)
                 throws IOException,
                        AutomationException
Current map level for drawing multi-level symbols.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
mapLevel - The mapLevel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.