<?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:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:esri="http://www.esri.com/2008/ags" creationComplete="application1_creationCompleteHandler(event)"> <s:layout> <s:VerticalLayout paddingLeft="20" paddingTop="20" paddingRight="20" paddingBottom="20"/> </s:layout> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.tasks.JSONTask; import mx.collections.ArrayCollection; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; import mx.rpc.Fault; import spark.events.IndexChangeEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.services.length; s++){ if(event.services.type == "MapServer"){ msArray.addItem(event.services.name); } } MSdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.layers.length; s++){ var lo:Object = { label: event.layers.name, id: event.layers.id } msArray.addItem(lo); } MSLyrsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSLyrsdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer/" + MSLyrsdropdown.selectedItem.id); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.fields.length; s++){ var fo:Object = { label: event.fields.alias, name: event.fields.name } msArray.addItem(fo); } MSLyrFldsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } ]]> </fx:Script> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service:" /> <s:DropDownList id="MSdropdown" width="300" prompt="Choose Map Service" change="MSdropdown_changeHandler(event)"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layers:" /> <s:DropDownList id="MSLyrsdropdown" width="300" prompt="Choose Map Service Layer" change="MSLyrsdropdown_changeHandler(event)" labelField="label"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layer Fields:" /> <s:DropDownList id="MSLyrFldsdropdown" width="300" prompt="Choose Map Service Layer Field"/> </s:HGroup> </s:Application>
Life esri, Here is some example code for that:<?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:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:esri="http://www.esri.com/2008/ags" creationComplete="application1_creationCompleteHandler(event)"> <s:layout> <s:VerticalLayout paddingLeft="20" paddingTop="20" paddingRight="20" paddingBottom="20"/> </s:layout> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.tasks.JSONTask; import mx.collections.ArrayCollection; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; import mx.rpc.Fault; import spark.events.IndexChangeEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.services.length; s++){ if(event.services.type == "MapServer"){ msArray.addItem(event.services.name); } } MSdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.layers.length; s++){ var lo:Object = { label: event.layers.name, id: event.layers.id } msArray.addItem(lo); } MSLyrsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSLyrsdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer/" + MSLyrsdropdown.selectedItem.id); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.fields.length; s++){ var fo:Object = { label: event.fields.alias, name: event.fields.name } msArray.addItem(fo); } MSLyrFldsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } ]]> </fx:Script> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service:" /> <s:DropDownList id="MSdropdown" width="300" prompt="Choose Map Service" change="MSdropdown_changeHandler(event)"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layers:" /> <s:DropDownList id="MSLyrsdropdown" width="300" prompt="Choose Map Service Layer" change="MSLyrsdropdown_changeHandler(event)" labelField="label"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layer Fields:" /> <s:DropDownList id="MSLyrFldsdropdown" width="300" prompt="Choose Map Service Layer Field"/> </s:HGroup> </s:Application>Don't forget to click the Mark as answer check on this post and to click the top arrow (promote).Follow these steps as shown in the below graphic:
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.