|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.carto.LayerDescription
public class LayerDescription
The Layer Description coclass contains settings of a layer in a map.
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.
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 |
void |
getClassID(GUID[] pClassID)
getClassID |
static String |
getClsid()
getClsid. |
String |
getDefinitionExpression()
The definition expression for the layer. |
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 |
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 |
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 |
---|
public LayerDescription() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic LayerDescription(Object obj) throws IOException
LayerDescription theLayerDescription = (LayerDescription) obj;
obj
to LayerDescription
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public int getID() throws IOException, AutomationException
ID is a unique identifier for a layer in a given instance of ArcGIS 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.
getID
in interface ILayerDescription
getID
in interface IMapTableDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setID(int layerID) throws IOException, AutomationException
setID
in interface ILayerDescription
setID
in interface IMapTableDescription
layerID
- The layerID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isVisible() throws IOException, AutomationException
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.
isVisible
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setVisible(boolean visible) throws IOException, AutomationException
setVisible
in interface ILayerDescription
visible
- The visible (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isScaleSymbols() throws IOException, AutomationException
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.
isScaleSymbols
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setScaleSymbols(boolean scale) throws IOException, AutomationException
setScaleSymbols
in interface ILayerDescription
scale
- The scale (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isShowLabels() throws IOException, AutomationException
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.
isShowLabels
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setShowLabels(boolean show) throws IOException, AutomationException
setShowLabels
in interface ILayerDescription
show
- The show (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFIDSet getSelectionFeatures() throws IOException, AutomationException
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.
getSelectionFeatures
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSelectionFeatures(IFIDSet featureIDs) throws IOException, AutomationException
setSelectionFeatures
in interface ILayerDescription
featureIDs
- A reference to a com.esri.arcgis.geodatabase.IFIDSet (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IColor getSelectionColor() throws IOException, AutomationException
The color with which selected features for this particular layer are drawn.
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.
getSelectionColor
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSelectionColorByRef(IColor color) throws IOException, AutomationException
setSelectionColorByRef
in interface ILayerDescription
color
- A reference to a com.esri.arcgis.display.IColor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISymbol getSelectionSymbol() throws IOException, AutomationException
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.
Only ISimpleMarkerSymbol, ICharacterMarkerSymbol, IPictureMarkerSymbol, ISimpleLineSymbol and ISimpleFillSymbol, IPictureFillSymbol are supported when accessing a MapServer object through AGSServerConnection (LAN or internet).
getSelectionSymbol
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSelectionSymbolByRef(ISymbol symbol) throws IOException, AutomationException
setSelectionSymbolByRef
in interface ILayerDescription
symbol
- A reference to a com.esri.arcgis.display.ISymbol (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isSetSelectionSymbol() throws IOException, AutomationException
This property should be set to TRUE if you wish 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.
Only ISimpleMarkerSymbol, ICharacterMarkerSymbol, IPictureMarkerSymbol, ISimpleLineSymbol and ISimpleFillSymbol, IPictureFillSymbol are supported when accessing a MapServer object through AGSServerConnection (LAN or internet).
isSetSelectionSymbol
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSetSelectionSymbol(boolean setSymbol) throws IOException, AutomationException
setSetSelectionSymbol
in interface ILayerDescription
setSymbol
- The setSymbol (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getSelectionBufferDistance() throws IOException, AutomationException
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.
getSelectionBufferDistance
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSelectionBufferDistance(double distance) throws IOException, AutomationException
setSelectionBufferDistance
in interface ILayerDescription
distance
- The distance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isShowSelectionBuffer() throws IOException, AutomationException
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.
isShowSelectionBuffer
in interface ILayerDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setShowSelectionBuffer(boolean show) throws IOException, AutomationException
setShowSelectionBuffer
in interface ILayerDescription
show
- The show (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getDefinitionExpression() throws IOException, AutomationException
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.
getDefinitionExpression
in interface ILayerDescription
getDefinitionExpression
in interface IMapTableDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setDefinitionExpression(String expression) throws IOException, AutomationException
setDefinitionExpression
in interface ILayerDescription
setDefinitionExpression
in interface IMapTableDescription
expression
- The expression (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getSourceID() throws IOException, AutomationException
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.
getSourceID
in interface ILayerDescription2
getSourceID
in interface IMapTableDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSourceID(String srcID) throws IOException, AutomationException
setSourceID
in interface ILayerDescription2
setSourceID
in interface IMapTableDescription
srcID
- The srcID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFillSymbol getSelectionBufferSymbol() throws IOException, AutomationException
Use this property when you want something other than the default symbology to symbolize buffers. Only ISimpleMarkerSymbol, ICharacterMarkerSymbol, IPictureMarkerSymbol, ISimpleLineSymbol and ISimpleFillSymbol, IPictureFillSymbol are supported when accessing a MapServer object through AGSServerConnection (LAN or internet).
getSelectionBufferSymbol
in interface ILayerDescription2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSelectionBufferSymbolByRef(IFillSymbol bufferSymbol) throws IOException, AutomationException
setSelectionBufferSymbolByRef
in interface ILayerDescription2
bufferSymbol
- A reference to a com.esri.arcgis.display.IFillSymbol (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLayerResultOptionsByRef(ILayerResultOptions layerResultOptions) throws IOException, AutomationException
setLayerResultOptionsByRef
in interface ILayerDescription3
layerResultOptions
- A reference to a com.esri.arcgis.carto.ILayerResultOptions (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ILayerResultOptions getLayerResultOptions() throws IOException, AutomationException
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.
getLayerResultOptions
in interface ILayerDescription3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isUseTime() throws IOException, AutomationException
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.
isUseTime
in interface IMapTableTimeDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setUseTime(boolean useTime) throws IOException, AutomationException
setUseTime
in interface IMapTableTimeDescription
useTime
- The useTime (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isTimeDataCumulative() throws IOException, AutomationException
isTimeDataCumulative
in interface IMapTableTimeDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeDataCumulative(boolean drawCumilative) throws IOException, AutomationException
setTimeDataCumulative
in interface IMapTableTimeDescription
drawCumilative
- The drawCumilative (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getTimeOffset() throws IOException, AutomationException
getTimeOffset
in interface IMapTableTimeDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeOffset(double offset) throws IOException, AutomationException
setTimeOffset
in interface IMapTableTimeDescription
offset
- The offset (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getTimeOffsetUnits() throws IOException, AutomationException
getTimeOffsetUnits
in interface IMapTableTimeDescription
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeOffsetUnits(int offsetUnits) throws IOException, AutomationException
setTimeOffsetUnits
in interface IMapTableTimeDescription
offsetUnits
- A com.esri.arcgis.system.esriTimeUnits constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void serialize(IXMLSerializeData data) throws IOException, AutomationException
serialize
in interface IXMLSerialize
data
- A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deserialize(IXMLSerializeData data) throws IOException, AutomationException
deserialize
in interface IXMLSerialize
data
- A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void isDirty() throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
isDirty
in interface IPersistStream
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void load(IStream pstm) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
load
in interface IPersistStream
pstm
- A reference to a com.esri.arcgis.system.IStream (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void save(IStream pstm, int fClearDirty) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
save
in interface IPersistStream
pstm
- A reference to a com.esri.arcgis.system.IStream (in)fClearDirty
- The fClearDirty (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSizeMax(_ULARGE_INTEGER[] pcbSize) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
getSizeMax
in interface IPersistStream
pcbSize
- A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getClassID(GUID[] pClassID) throws IOException, AutomationException
IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.
getClassID
in interface IPersist
pClassID
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |