研究了一个arcgisserver10.1动态图层渲染的问题。
环境:
服务器: window server 2008 64位
安装arcgis: arcgisdesktop10.1
arcgisserver 10.1
开发客户端: flexbuilder4 flex sdk4.6
Flexviewer: 3.4
arcgis flex api: 3.4
原始图层:
渲染图层:
发布图层服务时如下选项勾选:
FLEX代码:
<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*"
x="600" y="300"
initialize="basewidget_initializeHandler()"
widgetConfigLoaded="basewidget_widgetConfigLoaded()" xmlns:esri="http://www.esri.com/2008/ags">
<fx:Script>
<![CDATA[
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
import com.esri.ags.layers.supportClasses.LayerDrawingOptions;
import com.esri.ags.renderers.ClassBreaksRenderer;
private function basewidget_initializeHandler():void
{
if (isPartOfPanel) // if widget is part of "left", "right" or "bottom" panel
{
this.percentWidth = this.percentHeight = 100;
wTemplate.percentWidth = wTemplate.percentHeight = 100;
}
else
{
wTemplate.width = 355;
wTemplate.height = 260;
wTemplate.minHeight = 168;
}
}
private function basewidget_widgetConfigLoaded():void
{
if (configXML)
{
}
}
protected function button1_clickHandler(event:MouseEvent):void
{
var url:String="http://192.168.1.88:6080/arcgis/rest/services/chinaxzq/MapServer";
var arcgisDynimcLayer:ArcGISDynamicMapServiceLayer=new ArcGISDynamicMapServiceLayer(url);
arcgisDynimcLayer.id="testlayer";
arcgisDynimcLayer.visible=true;
map.addLayer(arcgisDynimcLayer);
}
protected function button2_clickHandler(event:MouseEvent):void
{
var layerDrawingOptions:LayerDrawingOptions = new LayerDrawingOptions();
layerDrawingOptions.layerId = 0; //states layer id in the service
layerDrawingOptions.renderer = testrender;
var layerDrawingOptionsArr:Array = [ layerDrawingOptions ];
ArcGISDynamicMapServiceLayer(map.getLayer("testlayer")).layerDrawingOptions = layerDrawingOptionsArr;
}
]]>
</fx:Script>
<fx:Declarations>
<esri:ClassBreaksRenderer id="testrender" field="AREA" >
<esri:ClassBreakInfo maxValue="20" symbol="{defsymbol1}"/>
<esri:ClassBreakInfo minValue="21" maxValue="60" symbol="{defsymbol2}"/>
<esri:ClassBreakInfo minValue="61" symbol="{defsymbol3}"/>
</esri:ClassBreaksRenderer>
<esri:SimpleFillSymbol id="defsymbol1" alpha="0.7" color="#FF0000" />
<esri:SimpleFillSymbol id="defsymbol2" alpha="0.7" color="#FF00FF" />
<esri:SimpleFillSymbol id="defsymbol3" alpha="0.7" color="#FFFF00" />
</fx:Declarations>
<viewer:WidgetTemplate id="wTemplate">
<s:VGroup>
<s:Button label="添加图层" click="button1_clickHandler(event)" />
<s:Button label="图层渲染" click="button2_clickHandler(event)" />
</s:VGroup>
</viewer:WidgetTemplate>
</viewer:BaseWidget>