com.esri.arcgis.carto
Class LayerDescription

java.lang.Object
  extended by com.esri.arcgis.carto.LayerDescription
All Implemented Interfaces:
IDynamicLayerDescription, IDynamicMapTableDescription, ILayerDescription, ILayerDescription2, ILayerDescription3, IMapTableDescription, IMapTableTimeDescription, com.esri.arcgis.interop.RemoteObjRef, IPersist, IPersistStream, IXMLSerialize, Externalizable, Serializable

public class LayerDescription
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, ILayerDescription, ILayerDescription2, ILayerDescription3, IMapTableDescription, IMapTableTimeDescription, IDynamicMapTableDescription, IDynamicLayerDescription, IXMLSerialize, IPersistStream, IPersist, Externalizable

The Layer Description coclass contains settings of a layer in a map.

Remarks

A MapServer service can have an associated tiled map cache. This cache is a collection of pre-rendered map tiles used that are used for the display of the map service. If a layer belongs to a cache all changes made to LayerDescription for this layer will be ignored.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
LayerDescription()
          Constructs a LayerDescription using ArcGIS Engine.
LayerDescription(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
LayerDescription theLayerDescription = (LayerDescription) obj;
 
Method Summary
 void deserialize(IXMLSerializeData data)
          Deserializes an object from XML.
 boolean equals(Object o)
          Compare this object with another
 IMapServerSourceDescription esri_getSource()
          Data source for dynamic table.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 String getDefinitionExpression()
          The definition expression for the layer.
 ILayerDrawingDescription getDrawingDescription()
          Drawing Descriptions.
 int getID()
          The layer ID.
 ILayerResultOptions getLayerResultOptions()
          Indicate whether to include and/or modify Geometry.
 double getSelectionBufferDistance()
          The selection buffer distance.
 IFillSymbol getSelectionBufferSymbol()
          Symbol used for drawing selection buffer.
 IColor getSelectionColor()
          The selection color (used when SetSelectionSymbol = FALSE).
 IFIDSet getSelectionFeatures()
          Array of selected features.
 ISymbol getSelectionSymbol()
          The selection symbol.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 String getSourceID()
          The id of the source to use when drawing the layer.
 double getTimeOffset()
          Draw time offset to overlay the data on a earlier or later time span.
 int getTimeOffsetUnits()
          Draw time offset units.
 int hashCode()
          the hashcode for this object
 void isDirty()
          isDirty
 boolean isScaleSymbols()
          Indicates whether the layer should scale its symbols according to the reference scale.
 boolean isSetSelectionSymbol()
          Indicates if the selected set of features is drawn using the SelectionSymbol.
 boolean isShowLabels()
          Indicates whether the layer should display its dynamic labels.
 boolean isShowSelectionBuffer()
          Indicates whether the selection buffer should be displayed.
 boolean isTimeDataCumulative()
          Draw the data cumulatively from the first instance of time in data as time progresses.
 boolean isUseTime()
          Indicates whether use time for display.
 boolean isVisible()
          Indicates whether the layer is visible as defined in the TOC (i.e.
 void load(IStream pstm)
          load
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void serialize(IXMLSerializeData data)
          Serializes an object to XML.
 void setDefinitionExpression(String expression)
          The definition expression for the layer.
 void setDrawingDescriptionByRef(ILayerDrawingDescription ppLayerDrawingDescription)
          Drawing Descriptions.
 void setID(int layerID)
          The layer ID.
 void setLayerResultOptionsByRef(ILayerResultOptions layerResultOptions)
          Indicate whether to include and/or modify Geometry.
 void setScaleSymbols(boolean scale)
          Indicates whether the layer should scale its symbols according to the reference scale.
 void setSelectionBufferDistance(double distance)
          The selection buffer distance.
 void setSelectionBufferSymbolByRef(IFillSymbol bufferSymbol)
          Symbol used for drawing selection buffer.
 void setSelectionColorByRef(IColor color)
          The selection color (used when SetSelectionSymbol = FALSE).
 void setSelectionFeatures(IFIDSet featureIDs)
          Array of selected features.
 void setSelectionSymbolByRef(ISymbol symbol)
          The selection symbol.
 void setSetSelectionSymbol(boolean setSymbol)
          Indicates if the selected set of features is drawn using the SelectionSymbol.
 void setShowLabels(boolean show)
          Indicates whether the layer should display its dynamic labels.
 void setShowSelectionBuffer(boolean show)
          Indicates whether the selection buffer should be displayed.
 void setSource(IMapServerSourceDescription ppMapServerSourceDescription)
          Data source for dynamic table.
 void setSourceID(String srcID)
          The id of the source to use when drawing the layer.
 void setTimeDataCumulative(boolean drawCumilative)
          Draw the data cumulatively from the first instance of time in data as time progresses.
 void setTimeOffset(double offset)
          Draw time offset to overlay the data on a earlier or later time span.
 void setTimeOffsetUnits(int offsetUnits)
          Draw time offset units.
 void setUseTime(boolean useTime)
          Indicates whether use time for display.
 void setVisible(boolean visible)
          Indicates whether the layer is visible as defined in the TOC (i.e.
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

LayerDescription

public LayerDescription()
                 throws IOException,
                        UnknownHostException
Constructs a LayerDescription using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

LayerDescription

public LayerDescription(Object obj)
                 throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
LayerDescription theLayerDescription = (LayerDescription) obj;

Construct a LayerDescription using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to LayerDescription.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getID

public int getID()
          throws IOException,
                 AutomationException
The layer ID. This is a unique ID for the layer, and is used to identify the layer in a number of method calls.

Remarks

ID is a unique identifier for a layer in a given instance of ArcGIS for Server map service. It is important to note that ID, SourceID and the index of layers (see MapLayerInfos) in map document are not the same. SourceID is used for map service interaction with the GPServer.

When a map service is published, a unique ID is assigned to all layers within the original map document (.mxd) starting from 0 (zero). This ID is accessible from IMapServerObjects2, MapLayerInfo, LayerDescription, MapServerLegendInfo, MapServerIdentifyResult, MapServerFindResult and FeatureExtent.

ID is not re-usable and does not change if the order of the layer is changed. This would change the how each layer is ordered in the index of layers. Adding new a layer results in a new ID being assigned. IDs keep incrementing as new layers are added to the map service. The limit of id numbers available is the limit of Long data type.

Please note that if the layer order in the TOC of the original map is changed or if layers are added/removed, the IDs will change accordingly.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getID in interface ILayerDescription
Specified by:
getID in interface IMapTableDescription
Returns:
The layerID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setID

public void setID(int layerID)
           throws IOException,
                  AutomationException
The layer ID. This is a unique ID for the layer, and is used to identify the layer in a number of method calls.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setID in interface ILayerDescription
Specified by:
setID in interface IMapTableDescription
Parameters:
layerID - The layerID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isVisible

public boolean isVisible()
                  throws IOException,
                         AutomationException
Indicates whether the layer is visible as defined in the TOC (i.e. marked on).

Remarks

This property only reflects the layer's on/off state in the TOC. A layer's visibility property may be TRUE and the layer may still not be visible on the map. This occurs when a layer is marked "on" but is not drawn in the map display because its display is dependent on the scale of the map.

Use VisibleLayers on IMapImage to retrieve an array of layers that are both "on" in the TOC and visible in the map display.

You can also use MinScale and MaxScale on IMapLayerInfo2 to see if the layer has any scale dependencies and then use MapScale on IMapImage or ComputeScale on IMapServer2 to determine the map scale. If the map scale falls outside the specified scale range set for the layer, the layer will not display.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isVisible in interface ILayerDescription
Returns:
The visible
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setVisible

public void setVisible(boolean visible)
                throws IOException,
                       AutomationException
Indicates whether the layer is visible as defined in the TOC (i.e. marked on).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isScaleSymbols

public boolean isScaleSymbols()
                       throws IOException,
                              AutomationException
Indicates whether the layer should scale its symbols according to the reference scale.

Remarks

In order for symbols to scale, the map must have a reference scale set and the layer must support symbol scaling. Use ScaleSymbols to activate or deactivate a layer's symbol scaling. If a map does not have a set reference scale setting, ScaleSymbols will have no effect. Use CanScaleSymbols on IMapLayerInfo2 to verify if a layer supports symbol scaling. A reference scale is set within the original map document.

You can set a new reference scale for the MapServer object by accessing the IMap interface through IMapServerObjects2. This should be done with objects in a non-pooled environment. Changing the state of pooled objects this way will lead to unexpected results.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isScaleSymbols in interface ILayerDescription
Returns:
The scale
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setScaleSymbols

public void setScaleSymbols(boolean scale)
                     throws IOException,
                            AutomationException
Indicates whether the layer should scale its symbols according to the reference scale.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isShowLabels

public boolean isShowLabels()
                     throws IOException,
                            AutomationException
Indicates whether the layer should display its dynamic labels.

Remarks

This only applies to layers where the property HasLabels on IMapLayerInfo2 is TRUE. This means that the layer's labels must be "on" in the original map document.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isShowLabels in interface ILayerDescription
Returns:
The show
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setShowLabels

public void setShowLabels(boolean show)
                   throws IOException,
                          AutomationException
Indicates whether the layer should display its dynamic labels.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSelectionFeatures

public IFIDSet getSelectionFeatures()
                             throws IOException,
                                    AutomationException
Array of selected features.

Remarks

If you want to clear the selection, set SelectionFeatures to Null/Nothing. If you forget to do this, the previous selection will be added to the current selection.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSelectionFeatures in interface ILayerDescription
Returns:
A reference to a com.esri.arcgis.geodatabase.IFIDSet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelectionFeatures

public void setSelectionFeatures(IFIDSet featureIDs)
                          throws IOException,
                                 AutomationException
Array of selected features.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSelectionFeatures in interface ILayerDescription
Parameters:
featureIDs - A reference to a com.esri.arcgis.geodatabase.IFIDSet (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSelectionColor

public IColor getSelectionColor()
                         throws IOException,
                                AutomationException
The selection color (used when SetSelectionSymbol = FALSE).

Description

The color with which selected features for this particular layer are drawn.

Remarks

This property should be used when you want to apply a different selection color for an individual layer. If you wish to change the selection color for all layers you should use SelectionColor on IMapDescription2. If you wish to change the symbology of selected features you need to use SetSelectionSymbol and SelectionSymbol on the LayerDescription.


SelectionColor on ILayerDescription overrides SelectionColor on IMapDescription. If SetSelectionSymbol is set to TRUE, SelectionColor will not be applied. Instead, the selection color of the symbol you specify (SelectionSymbol) will be used.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSelectionColor in interface ILayerDescription
Returns:
A reference to a com.esri.arcgis.display.IColor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelectionColorByRef

public void setSelectionColorByRef(IColor color)
                            throws IOException,
                                   AutomationException
The selection color (used when SetSelectionSymbol = FALSE).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSelectionColorByRef in interface ILayerDescription
Parameters:
color - A reference to a com.esri.arcgis.display.IColor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSelectionSymbol

public ISymbol getSelectionSymbol()
                           throws IOException,
                                  AutomationException
The selection symbol.

Remarks

Use this property when you want something other than the default symbology to indicate selected features. For example, you want to use a star symbol to indicate selected point features. SelectionSymbol is only applied if SetSelectionSymbol is set to TRUE. Otherwise, default symbols are used.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSelectionSymbol in interface ILayerDescription
Returns:
A reference to a com.esri.arcgis.display.ISymbol
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelectionSymbolByRef

public void setSelectionSymbolByRef(ISymbol symbol)
                             throws IOException,
                                    AutomationException
The selection symbol.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSelectionSymbolByRef in interface ILayerDescription
Parameters:
symbol - A reference to a com.esri.arcgis.display.ISymbol (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isSetSelectionSymbol

public boolean isSetSelectionSymbol()
                             throws IOException,
                                    AutomationException
Indicates if the selected set of features is drawn using the SelectionSymbol.

Remarks

This property should be set to TRUE if you want to use something other than the default selection symbology. For example, you want to use a star symbol to indicate selected point features. If SetSelectionSymbol is set to TRUE, SelectionColor will not be applied. You will need to set the selection color as part of the properties of the new selection symbol object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isSetSelectionSymbol in interface ILayerDescription
Returns:
The setSymbol
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSetSelectionSymbol

public void setSetSelectionSymbol(boolean setSymbol)
                           throws IOException,
                                  AutomationException
Indicates if the selected set of features is drawn using the SelectionSymbol.

Product Availability

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

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

getSelectionBufferDistance

public double getSelectionBufferDistance()
                                  throws IOException,
                                         AutomationException
The selection buffer distance. When drawing, and if a selection filter is specified, a buffer zone of the specified distance will be displayed around the selected features.

Remarks

The selection buffer is based on Euclidian distance. The accuracy of the buffer is dependent on the spatial reference used in the map. An inappropriate spatial reference will result in inaccurate buffer distances. For best results, the map should be in an appropriate spatial reference.

In order to control the amount of information MapServer needs to process for a buffer, a maximum number of records to be buffered can be set. This value is contained in the MaxBufferCount property. The default value for this property is 100. If the number of features to be buffered exceeds MaxBufferCount no features will be buffered. The MaxBufferCount can also be changed by modifying the MaxRecordCount XML tag in the MapServer's configuration file.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSelectionBufferDistance in interface ILayerDescription
Returns:
The distance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelectionBufferDistance

public void setSelectionBufferDistance(double distance)
                                throws IOException,
                                       AutomationException
The selection buffer distance. When drawing, and if a selection filter is specified, a buffer zone of the specified distance will be displayed around the selected features.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isShowSelectionBuffer

public boolean isShowSelectionBuffer()
                              throws IOException,
                                     AutomationException
Indicates whether the selection buffer should be displayed.

Remarks

The selection buffer is based on Euclidian distance. The accuracy of the buffer is dependent on the spatial reference used in the map. An inappropriate spatial reference will result in inaccurate buffer distances. For best results, the map should be in an appropriate spatial reference.

In order to control the amount of information MapServer needs to process for a buffer, a maximum number of records to be buffered can be set. This value is contained in the MaxBufferCount property. The default value for this property is 100. If the number of features to be buffered exceeds MaxBufferCount no features will be buffered. The MaxBufferCount can also be changed by modifying the MaxRecordCount XML tag in the MapServer's configuration file.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isShowSelectionBuffer in interface ILayerDescription
Returns:
The show
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setShowSelectionBuffer

public void setShowSelectionBuffer(boolean show)
                            throws IOException,
                                   AutomationException
Indicates whether the selection buffer should be displayed.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getDefinitionExpression

public String getDefinitionExpression()
                               throws IOException,
                                      AutomationException
The definition expression for the layer.

Remarks

A DefinitionExpression can be set on a layer in order to limit layer features available for display or query. This expression can be also be set in the source map document as a definition query. An expression set in the LayerDescription will override one set for the layer in the source map. This only applies for the session state and does not replace the definition query set in the source map.

Let's look at some examples. You have a layer in your map that represents sales regions. The layer includes fields: REGIONS, SALES and MANAGER.

Example #1: In the source map the layer has a definition query, "REGION = North". No DefintionExpression is specified in LayerDescription. Only those features where REGION = North will be displayed in your map.

Example #2: In the source map the layer has a definition query, "REGION = ‘North’". You apply a DefinitionExpression in LayerDescription as "SALES > 1000". The LayerDescription DefinitionExpression overrides the definition query set in the source map. Only those features where SALES > 1000 will be displayed in your map.

If you wish to use the DefinitionExpression as a way of getting a subset of the features already filtered by the definition query in the map you will need to save the original expression and then add it to the new expression to form one compound expression, “REGION = ‘North’ AND SALES > 1000”. This will display map features that are belong to the North region and have sales over 1000.

Example #3: In the source map the layer has no definition query. You apply a DefinitionExpression in LayerDescription as "SALES > 1000". Only those features where SALES > 1000 will be displayed in your map.

The following MapServer methods will honor DefinitionExpression: Find, Identify, QueryFeatureCount2, QueryFeatureIds2, QueryFeatureData2 and QueryHyperlinks2.

Although the DefinitionExpression set in the LayerDescription will override any any definition query set in the source map, there are MapServer methods that only honor the expression set in the source document. Any expression set in DefinitionExpression in the LayerDescription will be ignored. These mothods include: QueryFeatureCount, QueryFeatureIds, and QueryFeatureData. MapDescription, which contains the LayerDescriptions, are not a parameter for these methods.

DefinitionExpression does not affect spatial extents.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDefinitionExpression in interface ILayerDescription
Specified by:
getDefinitionExpression in interface IMapTableDescription
Returns:
The expression
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefinitionExpression

public void setDefinitionExpression(String expression)
                             throws IOException,
                                    AutomationException
The definition expression for the layer.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setDefinitionExpression in interface ILayerDescription
Specified by:
setDefinitionExpression in interface IMapTableDescription
Parameters:
expression - The expression (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSourceID

public String getSourceID()
                   throws IOException,
                          AutomationException
The id of the source to use when drawing the layer.

Remarks

SourceID is used for map service interaction with the GPServer. It is a unique job id assigned to a geoprocessing service each time it runs on the server. This property can be used to find out which geoprocessing job has created this layer.

It is important to note that LayerID, SourceID and the index of layers (see MapLayerInfos) in map document are not the same.

Product Availability

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

Specified by:
getSourceID in interface ILayerDescription2
Specified by:
getSourceID in interface IMapTableDescription
Returns:
The srcID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSourceID

public void setSourceID(String srcID)
                 throws IOException,
                        AutomationException
The id of the source to use when drawing the layer.

Product Availability

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

Specified by:
setSourceID in interface ILayerDescription2
Specified by:
setSourceID in interface IMapTableDescription
Parameters:
srcID - The srcID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSelectionBufferSymbol

public IFillSymbol getSelectionBufferSymbol()
                                     throws IOException,
                                            AutomationException
Symbol used for drawing selection buffer.

Remarks

Use this property when you want something other than the default symbology to symbolize buffers.

Product Availability

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

Specified by:
getSelectionBufferSymbol in interface ILayerDescription2
Returns:
A reference to a com.esri.arcgis.display.IFillSymbol
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelectionBufferSymbolByRef

public void setSelectionBufferSymbolByRef(IFillSymbol bufferSymbol)
                                   throws IOException,
                                          AutomationException
Symbol used for drawing selection buffer.

Product Availability

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

Specified by:
setSelectionBufferSymbolByRef in interface ILayerDescription2
Parameters:
bufferSymbol - A reference to a com.esri.arcgis.display.IFillSymbol (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLayerResultOptionsByRef

public void setLayerResultOptionsByRef(ILayerResultOptions layerResultOptions)
                                throws IOException,
                                       AutomationException
Indicate whether to include and/or modify Geometry.

Product Availability

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

Specified by:
setLayerResultOptionsByRef in interface ILayerDescription3
Parameters:
layerResultOptions - A reference to a com.esri.arcgis.carto.ILayerResultOptions (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLayerResultOptions

public ILayerResultOptions getLayerResultOptions()
                                          throws IOException,
                                                 AutomationException
Indicate whether to include and/or modify Geometry.

Remarks

In some cases you may want to customize the results of a MapServer query - for example, when you want field names (instead of field aliases) or data in native format or in some cases you may want improve the performance by limiting or adjusting the geometry being returned.

Since LayerResultsOptions is part of of the LayerDescription, any settings made for LayerResultsOptions will only affect those methods that include the LayerDescription (or MapDescription which contains LayerDescriptions) as a parameter.

Product Availability

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

Specified by:
getLayerResultOptions in interface ILayerDescription3
Returns:
A reference to a com.esri.arcgis.carto.ILayerResultOptions
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUseTime

public boolean isUseTime()
                  throws IOException,
                         AutomationException
Indicates whether use time for display.

Remarks

When UseTime is set to False, the layer or table becomes time unaware and time related operations will ignore any time related settings on this layer or table. For example, when UseTime=False for a layer, ExportMapImage will draw all features from this layer even when IMapTimeDescription's TimeValue is set.

Product Availability

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

Specified by:
isUseTime in interface IMapTableTimeDescription
Returns:
The useTime
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUseTime

public void setUseTime(boolean useTime)
                throws IOException,
                       AutomationException
Indicates whether use time for display.

Product Availability

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

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

isTimeDataCumulative

public boolean isTimeDataCumulative()
                             throws IOException,
                                    AutomationException
Draw the data cumulatively from the first instance of time in data as time progresses.

Product Availability

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

Specified by:
isTimeDataCumulative in interface IMapTableTimeDescription
Returns:
The drawCumilative
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTimeDataCumulative

public void setTimeDataCumulative(boolean drawCumilative)
                           throws IOException,
                                  AutomationException
Draw the data cumulatively from the first instance of time in data as time progresses.

Product Availability

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

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

getTimeOffset

public double getTimeOffset()
                     throws IOException,
                            AutomationException
Draw time offset to overlay the data on a earlier or later time span.

Product Availability

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

Specified by:
getTimeOffset in interface IMapTableTimeDescription
Returns:
The offset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTimeOffset

public void setTimeOffset(double offset)
                   throws IOException,
                          AutomationException
Draw time offset to overlay the data on a earlier or later time span.

Product Availability

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

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

getTimeOffsetUnits

public int getTimeOffsetUnits()
                       throws IOException,
                              AutomationException
Draw time offset units.

Product Availability

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

Specified by:
getTimeOffsetUnits in interface IMapTableTimeDescription
Returns:
A com.esri.arcgis.system.esriTimeUnits constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTimeOffsetUnits

public void setTimeOffsetUnits(int offsetUnits)
                        throws IOException,
                               AutomationException
Draw time offset units.

Product Availability

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

Specified by:
setTimeOffsetUnits in interface IMapTableTimeDescription
Parameters:
offsetUnits - A com.esri.arcgis.system.esriTimeUnits constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

esri_getSource

public IMapServerSourceDescription esri_getSource()
                                           throws IOException,
                                                  AutomationException
Data source for dynamic table.

Product Availability

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

Specified by:
esri_getSource in interface IDynamicLayerDescription
Specified by:
esri_getSource in interface IDynamicMapTableDescription
Returns:
A reference to a com.esri.arcgis.carto.IMapServerSourceDescription
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSource

public void setSource(IMapServerSourceDescription ppMapServerSourceDescription)
               throws IOException,
                      AutomationException
Data source for dynamic table.

Product Availability

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

Specified by:
setSource in interface IDynamicLayerDescription
Specified by:
setSource in interface IDynamicMapTableDescription
Parameters:
ppMapServerSourceDescription - A reference to a com.esri.arcgis.carto.IMapServerSourceDescription (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDrawingDescriptionByRef

public void setDrawingDescriptionByRef(ILayerDrawingDescription ppLayerDrawingDescription)
                                throws IOException,
                                       AutomationException
Drawing Descriptions.

Product Availability

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

Specified by:
setDrawingDescriptionByRef in interface IDynamicLayerDescription
Parameters:
ppLayerDrawingDescription - A reference to a com.esri.arcgis.carto.ILayerDrawingDescription (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDrawingDescription

public ILayerDrawingDescription getDrawingDescription()
                                               throws IOException,
                                                      AutomationException
Drawing Descriptions.

Remarks

By setting this property, a user can override how features of an existing layer in a mapservice are drawn or set the renderer for a new layer added to to a mapservice dynamically. MapServer does not allow drawing description of all types of layer to be modified. Please check IMapLayerInfo4::CanModifyDrawingDescription property to find out whether you can change the renderer.

This is important to note that this is a stateless change. MapServer does not remember this change for the next request. It only affects that particular request what that means is that once the request is processed, MapServer does not remember that change and the next request comes in, MapServer processes that with layer's original state (the way it is defined in the source map document).

To set the layer back to the original state in your application session, you can set this property to Null or get the DefaultMapDescription from the server by calling GetServerInfo function.

You can create a new a DrawingDescription object with new renderer and set that to this property. Sometimes you may want to modify symbol for only one type of feature (in case of UniqueValueRenderer) or symbol of a ClassBreak, in this case you can get the default renderer information by calling GetDefaultLayerDrawingDescription. Then modify it and set it to this property. Please note GetDefaultLayerDrawingDescription may return simplified version of the symbol or some renderer may not be even supported - read the help for more information.

MapServer also has a helper function to assist you create renderer - you can use IMapServer4::GenerateDataClasses method to get UniqueValueRenderer or ClassBreaksRenderer created by MapServer.

Product Availability

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

Specified by:
getDrawingDescription in interface IDynamicLayerDescription
Returns:
A reference to a com.esri.arcgis.carto.ILayerDrawingDescription
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

serialize

public void serialize(IXMLSerializeData data)
               throws IOException,
                      AutomationException
Serializes an object to XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
serialize in interface IXMLSerialize
Parameters:
data - A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deserialize

public void deserialize(IXMLSerializeData data)
                 throws IOException,
                        AutomationException
Deserializes an object from XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deserialize in interface IXMLSerialize
Parameters:
data - A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws IOException,
                    AutomationException
isDirty

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isDirty in interface IPersistStream
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

load

public void load(IStream pstm)
          throws IOException,
                 AutomationException
load

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
load in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

save

public void save(IStream pstm,
                 int fClearDirty)
          throws IOException,
                 AutomationException
save

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws IOException,
                       AutomationException
getSizeMax

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassID

public void getClassID(GUID[] pClassID)
                throws IOException,
                       AutomationException
getClassID

Description

IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException