Hello everyone, I have problems when trying to change dynamically my layers' visual representation.
I have 2 ArcGISDynamicMapServiceLayers, one use SimpleRenderer, another UniqueValueRenderer.
The property layer.layerDrawingOptions is null when my layers are shown initially.
I manage to change style of each layer, but .... When I modify me second layer's representation I see 2 modified layers on the screen firstly, but when
I change zoom level, only the last modified layer is keepenig it's new style. What is going on? What I'm doing wrong?
I change layers' DrawingOptions like this:
if (l as ArcGISDynamicMapServiceLayer)
{
//--SimpleRenderer
if(rndr as SimpleRenderer)
{
srenderer.symbol = symbol;
l.layerDrawingOptions = DrawingOptions1;
//--UniqueValueRenderer
} else if (rndr as UniqueValueRenderer) {
uvr_field = rndr.field;
uvr_delimiter = rndr.fieldDelimiter;
arrRndrInfos = [my new style for sublayers];
dLayer.layerDrawingOptions = DrawingOptions2;
}
<fx:Declarations>
<fx:Array id="DrawingOptions1">
<esri:LayerDrawingOptions layerId="{layerId}" alpha="1" >
<esri:SimpleRenderer id="srenderer" />
</esri:LayerDrawingOptions>
</fx:Array>
<fx:Array id="DrawingOptions2">
<esri:LayerDrawingOptions layerId="{layerId}" >
<esri:UniqueValueRenderer field="{uvr_field}" fieldDelimiter="{uvr_delimiter}" infos="{arrRndrInfos}"/>
</esri:LayerDrawingOptions>
</fx:Array>
</fx:Declarations>
ok, I made a mistake while trying to simplify : the code is like this :
if (l as ArcGISDynamicMapServiceLayer)
{
dLayer = l as ArcGISDynamicMapServiceLayer;
//--SimpleRenderer
if(rndr as SimpleRenderer)
{
...
dLayer.layerDrawingOptions = DrawingOptions1;
//--UniqueValueRenderer
} else if (rndr as UniqueValueRenderer) {
...
dLayer.layerDrawingOptions = DrawingOptions2;