FindTask类使用方法

FindTask类特点:

  1. 支持多图层查询
  2. 支持字段查询
  3. 只能进行属性查询,不能进行空间查询
  4. 不能指定返回字段,只能返回[displayFieldName : String,feature : Graphic,foundFieldName : String,layerId : Number,layerName : String,value : String ]

FindTask使用步骤:

  1. 创建FindTask类
  2. 创建FindParameters类
  3. 创建UI输入界面,定义按钮查询事件
  4. 在按钮事件中,执行FindTask的execute方法
  5. 在FindTask的executeComplete方法中,出力返回结果,返回Findfeasture数组

<?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">

 <fx:Script>
  <![CDATA[
   import com.esri.ags.events.FindEvent;
   import com.esri.ags.tasks.supportClasses.FindResult;
   protected function button1_clickHandler(event:MouseEvent):void
   {
    findtask1.execute(findparameters);
   }

   protected function findtask1_executeCompleteHandler(event:FindEvent):void
   {
    var findresult:Array = event.findResults;
    grid1.dataProvider = findresult;
    for each (var result:FindResult in findresult)
    {
     graphic.add(result.feature); 
    }
   }

  ]]>
 </fx:Script>

 <fx:Declarations>
  <!-- Place non-visual elements (e.g., services, value objects) here -->
  <esri:PictureMarkerSymbol id="pic1" source="user4.png" />
  <esri:FindTask id="findtask1" executeComplete="findtask1_executeCompleteHandler(event)" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer" />
  <esri:FindParameters id="findparameters"  contains="true" returnGeometry="true" layerIds="[0,1,2]" searchFields="['CITY_NAME']" searchText="{Findtext.text}" />
 </fx:Declarations>
 <esri:Map>
  <esri:ArcGISDynamicMapServiceLayer  url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer" />
 <esri:GraphicsLayer id="graphic"  symbol="{pic1}"/>
 </esri:Map>
 <s:TextInput x="41" y="18" id="Findtext"/>
 <s:Button x="173" y="17" label="Button" click="button1_clickHandler(event)"/>
 <mx:DataGrid x="40" y="57" id="grid1">
  <mx:columns>
   <mx:DataGridColumn headerText="图层ID" dataField="layerId"/>
   <mx:DataGridColumn headerText="值" dataField="value"/>
   <mx:DataGridColumn headerText="图层名" dataField="layerName"/>
  </mx:columns>
 </mx:DataGrid>
</s:Application>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值