com.esri.arcgis.display
Interface IMapLevel

All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
ArrowMarkerSymbol, BasicFillSymbol, BasicLineSymbol, BasicMarkerSymbol, 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, SimpleFillSymbol, SimpleLine3DSymbol, SimpleLineSymbol, SimpleMarker3DSymbol, SimpleMarkerSymbol, TemporalFeatureLayer, TextSymbol, TextureFillSymbol, TextureLineSymbol

public interface IMapLevel
extends java.io.Serializable

Provides access to memebers that control the map level.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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.

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.

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.


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

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

Supported Platforms

Windows, Solaris, Linux

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

setMapLevel

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

Supported Platforms

Windows, Solaris, Linux

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