ArcGIS API For Flex —— 查询数据

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 —— 查询数据



未经允许请勿转载:程序喵 » ArcGIS API For Flex —— 查询数据

点  赞 (0) 打  赏
分享到: