Version 3.6
在本教程中,您将了解如何使用查询任务的工作,从一个ArcGIS服务查询数据。典型的情况是查询中涉及的过程的四个步骤:
1、设置Map和GraphicsLayer
2、使用查询过滤器设置QueryTask
3、执行QueryTask与用户输入
4、显示查询结果
在本教程中使用的例子是,在美国的一个州的名字键入一个查询任务。在此基础上输入的名称匹配的所有状态都显示在地图上。
官方地址: https://developers.arcgis.com/flex/guide/tutorial-query-your-data.htm
总体代码片段
<?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" xmlns:esri="http://www.esri.com/2008/ags"> <!-- 设置页面布局 --> <s:layout> <s:VerticalLayout gap="10" horizontalAlign="center" paddingBottom="20" paddingLeft="25" paddingRight="25" paddingTop="20"/> </s:layout> <fx:Script> <![CDATA[ import com.esri.ags.FeatureSet; import mx.controls.Alert; import mx.rpc.AsyncResponder; private function doQuery():void { queryTask.execute(query, new AsyncResponder(onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { // 在这个简单的实例中不需要写入代码,因为图形层是使用graphicProvider绑定到查询结果=“{queryTask.executeLastResult.features}” // graphicProvider="{queryTask.executeLastResult.features}" } function onFault(info:Object, token:Object = null):void { Alert.show(info.toString(), "Query Problem"); } } ]]> </fx:Script> <fx:Declarations> <!-- 美国区域层 --> <esri:QueryTask id="queryTask" showBusyCursor="true" useAMF="false" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"/> <esri:Query id="query" outSpatialReference="{myMap.spatialReference}" returnGeometry="true" text="{qText.text}"> <esri:outFields> <fx:String>MED_AGE</fx:String> <fx:String>POP2007</fx:String> </esri:outFields> </esri:Query> </fx:Declarations> <s:Panel height="60" backgroundColor="0xB2BFC6" title="查询层(搜索状态)"> <s:layout> <s:HorizontalLayout/> </s:layout> <s:TextInput id="qText" width="100%" enter="doQuery()" text="California"/> <s:Button label="搜索" click="doQuery()"/> </s:Panel> <esri:Map id="myMap"> <esri:extent> <esri:Extent xmax="-6815000" xmin="-14298000" ymax="7117000" ymin="2748000"> <esri:SpatialReference wkid="102100"/> </esri:Extent> </esri:extent> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer"/> <esri:GraphicsLayer id="myGraphicsLayer" graphicProvider="{queryTask.executeLastResult.features}"/> </esri:Map> </s:Application>
未经允许请勿转载:程序喵 » ArcGIS API For Flex —— 查询数据