原址:http://virgoooos.iteye.com/blog/794991
在ArcGIS10的rest接口已经提供给我们动态读取图层样式的接口了。?
其实当我们在访问ArcGIS Server10的时候,会发现每一个服务界面提供给我们比以前更多的信息了,这些信息只要你可以看到,我们是都有接口读取到的。?
以ESRI官网的服务为例:?
界面如下图:?

如果细心对比的话,会发现比前几个版本的信息量多了很多,例如:Tables?
再看一下对每个图层的信息描述,如下图:?

?
这里会很明显的发现drawinfo这个属性,记录着图层的图层样式,动态获取图层样式就要靠drawinfo这个属性了。?
代码如下:?
<?xml?version="1.0"?encoding="utf-8"?>??
<s:Application?xmlns:fx="http://ns.adobe.com/mxml/2009"???
???????????????xmlns:s="library://ns.adobe.com/flex/spark"???
???????????????xmlns:esri="http://www.esri.com/2008/ags"??
???????????????xmlns:mx="library://ns.adobe.com/flex/mx"???
???????????????creationComplete="application1_creationCompleteHandler(event)"??
???????????????minWidth="955"?minHeight="600">??
????<fx:Script>??
????????<![CDATA[??
????????????import?com.esri.ags.events.DetailsEvent;??
import?com.esri.ags.layers.supportClasses.LayerDetails;??
import?com.esri.ags.renderers.SimpleRenderer;??
import?com.esri.ags.symbols.PictureMarkerSymbol;??
??????????????
import?mx.core.INavigatorContent;??
import?mx.events.FlexEvent;??
import?mx.rpc.events.FaultEvent;??
?????????????
?
?????????????*?创建完成以后,加载?
?????????????*/???
protected?function?application1_creationCompleteHandler(event:FlexEvent):void??
????????????{??
????????????????for(var?i:int?=?0?;?i<map.layerIds.length;?i++)??
????????????????{??
????????????????????if(map.layers[i]?is?ArcGISDynamicMapServiceLayer)??
????????????????????{??
??????????????????????????
????????????????????????var?pServiceLayer:ArcGISDynamicMapServiceLayer?=?map.layers[i];??
??????????????????????????
????????????????????????pServiceLayer.getAllDetails();??
????????????????????????pServiceLayer.addEventListener(DetailsEvent.GET_ALL_DETAILS_COMPLETE?,?onAllDetailsComplete);??
????????????????????????pServiceLayer.addEventListener(FaultEvent.FAULT,?onFault);??
????????????????????}??
????????????????}??
????????????}??
private?function?onAllDetailsComplete(event:DetailsEvent): ??????????????????
????????????????var?p:LayerDetails?=?event.allDetails.layersDetails[0];??
????????????????var?pSimpleRender:SimpleRenderer?=?(SimpleRenderer)(p.drawingInfo.renderer);??
????????????????var?pSymbol:PictureMarkerSymbol?=?(PictureMarkerSymbol)(pSimpleRender.symbol);??
????????????????image.source?=?pSymbol.source;??
//??
private?function?onFault(event:FaultEvent): ????????????????trace("not?ok");??
????????]]>??
????</fx:Script>??
????<fx:Declarations>??
????????<!--?Place?non-visual?elements?(e.g.,?services,?value?objects)?here?-->??
????</fx:Declarations>??
????<!--?用于显示图层的样式的?-->??
????<mx:Image?id="image"?/>??
????<esri:Map?id="map">??
????????<esri:ArcGISDynamicMapServiceLayer?url="http://localhost:8399/arcgis/rest/services/resource/MapServer"/>??
????</esri:Map>??
??????
</s:Application>??