Base Type: MapTableDescription
A class that describes the contents of a layer in a map service.
Property |
Type |
Description |
DefinitionExpression |
string |
A where clause used to filter features for some query and display operations. |
LayerID |
int |
The unique id of the layer. |
LayerResultOptions |
Defines if and how geometry is included in query results. | |
ScaleSymbols |
bool |
Indicates whether the layer should scale symbols according to a reference scale set in the default map (default map description). |
SelectionBufferDistance |
double |
The buffer distance around selected features. It is defined in map units. |
SelectionBufferSymbol |
The symbol of the buffer. | |
SelectionColor |
The color of selected features in a layer. | |
SelectionFeatures |
int[] |
An array of Feature IDs (FIDs) to render as selected features. |
SelectionSymbol |
The symbol of selected features. | |
SetSelectionSymbol |
bool |
Indicates if should override default selection symbol. |
ShowLabels |
bool |
If a layer has labels, define if they should be displayed in a map. |
ShowSelectionBuffer |
bool |
If a selection buffer is defined (SelectionBufferDistance), show the buffer using the SelectionBufferSymbol. |
SourceID |
string |
The id of results from a geoprocessing job (same as the job id). Used to define the source for a tool layer in a map service. |
TimeDataCumulative |
bool |
Indicates if features will be animated cumulatively. |
TimeDataCumulativeSpecified |
bool |
Indicates if TimeDataCumulative is specified. |
TimeOffset |
double |
The time offset that needs to be applied to the data for drawing. |
TimeOffsetSpecified |
bool |
Indicates if TimeOffset is specified. |
TimeOffsetUnits |
The recommended time interval units to be used to animate this layer/ table. | |
TimeOffsetUnitsSpecified |
bool |
Indicates if TimeOffsetUnits is specified. |
UseTime |
bool |
Indicates whether or not a layer should use the TimeSpan in the MapDescription to draw its contents. |
UseTimeSpecified |
bool |
Indicates if UseTime is specified. |
Visible |
bool |
Indicates if the layer is visible in a map. |
Remarks
This object can be used to modify the presentation
and use of a layer in a map. For example, you can
use it to turn layers on/off when generating a map image or limit a query
by applying a layer definition. These settings
include a unique ID for the layer (LayerID),
an ID the corresponds with a Geoprocessing job (SourceID),
a boolean indicating if the layer is visible as defined in the table of
contents, i.e. the layer is marked on (Visible),
a boolean to indicate whether the layer should display its dynamic labels
(ShowLabels) if labels for this
layer are available to the map service, a boolean to indicate whether
the layer should scale it symbols according to a reference scale set in
the map (ScaleSymbols).
SourceID
is used for map service interaction with the Geoprocessing Server. 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 in map document are not the same.
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 MapLayerInfo to verify if a layer
supports symbol scaling. A reference scale is set within the original
map document.
Not all map service layers have available labels. To see if the layer has labels use HasLabels on MapLayerInfo.
The LayerDescription includes a DefinitionExpression.
A DefinitionExpression
can be set on a layer in order to limit layer features available for display
or query. A default definition expression can be set for a layer in the
source map. An expression set in the LayerDescription
will override one set for the layer in the source map. This only applies
for the request 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.
The following map service methods will only use the definition expression
set in the source map since a MapDescription
or LayerDescription is not provided as a parameter: QueryFeatureCount,
QueryFeatureIds, and QueryFeatureData.
Note that DefinitionExpression
does not affect spatial extents.
Please note that the following properties only honored in ExportMapImage and Identify operations:
UseTime
TimeDataCumulative
TimeOffset
TimeOffsetUnits