com.esri.arcgis.display
Class IMapLevelProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.display.IMapLevelProxy
All Implemented Interfaces:
IMapLevel, Externalizable, Serializable

public class IMapLevelProxy
extends com.esri.arcgis.interop.Dispatch
implements IMapLevel, 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.

See Also:
Serialized Form

Field Summary
 boolean noncastable
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, objRef
 
Constructor Summary
  IMapLevelProxy()
           
  IMapLevelProxy(Object obj)
           
protected IMapLevelProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 int getMapLevel()
          Current map level for drawing multi-level symbols.
 void removeListener(String iidStr, Object theListener)
           
 void setMapLevel(int mapLevel)
          Current map level for drawing multi-level symbols.
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, optimizedVtblInvoke, queryInterface, readExternal, release, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

noncastable

public boolean noncastable
Constructor Detail

IMapLevelProxy

public IMapLevelProxy()

IMapLevelProxy

public IMapLevelProxy(Object obj)
               throws IOException
Throws:
IOException

IMapLevelProxy

protected IMapLevelProxy(Object obj,
                         String iid)
                  throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

getMapLevel

public 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

Specified by:
getMapLevel in interface IMapLevel
Returns:
The mapLevel
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMapLevel

public 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

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