Overview of dynamic workflows
Starting with ArcGIS 10.1, you now have the ability to alter an ArcGIS Server dynamic map service during the request and change it dynamically. Before this, it was possible to control what data was displayed through filtering and querying data, e.g. such as a turning on/off layers or changing the layer's definition expression. Now with the use of dynamic layers you can control which layers will appear in a map, layer symbology, layer order and position, labeling, and more, all through the use of server-side capabilities.
Dynamic layers allow clients to change layer appearance and behavior on-the-fly in a map service. A dynamic layer / table resource represents a single layer / table of a map service published by ArcGIS Server or of a registered dynamic workspace. Dynamic layers supports adding feature layers and raster layers from the following data sources:
- Enterprise geodatabase
- File geodatabase
- File-based raster
- Query layers - from and ArcSDE enterprise geodatabase or non-SDE enterprise database.
If you are uncertain whether your dynamic map service supports dynamic layers, you can check its metadata directly in the REST services directory. There is a parameter called Supported Dynamic Layers and will report as either true or false depending on how the service was initially configured.
Besides manually checking the REST services directory to verify if it supports this functionality, the ArcGISDynamicMapServiceLayer's supportsDynamicLayers property also indicates whether this functionality has been set.
See Enabling dynamic layers on a map service in ArcGIS Desktop and Enabling dynamic layers on a map service in Manager for additional information on this setting.
Common dynamic workflow scenarios
The following describes some common reasons you may want to dynamically alter your map service:
- Define whether labels will appear for a layer. See the samples, LabelOptionsWizard, Dynamic labeling, and Dynamic labeling (advanced).
- Define layer symbology. See the samples, Change LayerDrawingOptions, Generate renderers, RangeValueRenderer, and UniqueValueRenderer.
- Define how layers are rendered (simple, unique value, or class breaks). See the samples, Change LayerDrawingOptions, Generate renderers, RangeValueRenderer, and UniqueValueRenderer.
- Define the position and order of layers in the map service. See the sample, Change Layer Ordering.
- Add new layers to the service from a registered workspace. See the sample, Dynamic workspace.
- Modify and/or add joins to an existing or new layer/table. See the sample, DynamicLayerInfo JoinDataSource.