FindTask练习

CODE
<?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.Graphic;
import com.esri.ags.events.FindEvent;
import com.esri.ags.geometry.Geometry;

private function doFind():void
{
findTask.execute(myFindParams);

}
private function executeCompleteHandler(event:FindEvent):void
{
myGraphicsLayer.clear();
var graphic:Graphic;
resultSummary.text = "找到" + event.findResults.length + "结果.";
var resultCount:int = event.findResults.length;
for (var i:Number = 0; i < resultCount; i++)
{
graphic = event.findResults[i].feature;
graphic.toolTip = event.findResults[i].foundFieldName + ": " + event.findResults[i].value;

switch (graphic.geometry.type)
{
case Geometry.MAPPOINT:
{
graphic.symbol = sms;
break;
}
case Geometry.POLYLINE:
{
graphic.symbol = sls;
break;
}
case Geometry.POLYGON:
{
graphic.symbol = sfs;
break;
}
}
myGraphicsLayer.add(graphic);
}

}
]]
>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<!-- Symbol for Find Result as Polyline -->
<esri:SimpleLineSymbol id="sls"
width
="3"
alpha
="0.9"
color
="0xFFFF00"
style
="solid"/>

<!-- Symbol for Find Result as Point -->
<esri:SimpleMarkerSymbol id="sms"
alpha
="0.9"
color
="0xFFFF00"
size
="11"
style
="cross">
<esri:SimpleLineSymbol color="0x000000"/>
</esri:SimpleMarkerSymbol>

<!-- Symbol for Find Result as Polygon -->
<esri:SimpleFillSymbol id="sfs"
alpha
="0.7"
color
="0xFFFF00"/>

<esri:FindTask id="findTask" executeComplete="executeCompleteHandler(event)"
url
="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/>
<esri:FindParameters id="myFindParams" returnGeometry="true" contains="true"
searchText
="{qText}" layerIds="[0,1,2]" searchFields="[CITY_NAME,NAME,SYSTEM,STATE_ABBR,STATE_NAME]"/>


</fx:Declarations>
<s:layout>
<s:VerticalLayout paddingTop="10" paddingLeft="10" paddingRight="10"/>
</s:layout>
<s:BorderContainer width="100%" height="40" backgroundColor="0xDDDDFF" borderVisible="false">
<s:layout>
<s:HorizontalLayout horizontalAlign="center"
paddingLeft
="20"
paddingTop
="10"/>
</s:layout>
<s:TextInput id="qText" text="Paradise" enter="doFind()"/>
<s:Button label="查询" click="doFind()"/>
</s:BorderContainer>
<s:Label id="resultSummary" height="15"/>
<mx:HDividedBox width="100%" height="100%">
<esri:Map id="myMap">
<esri:ArcGISDynamicMapServiceLayer
url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/>
<esri:GraphicsLayer id="myGraphicsLayer"/>
</esri:Map>
<mx:DataGrid width="40%" height="100%" dataProvider="{findTask.executeLastResult}">
<mx:columns>
<mx:DataGridColumn width="70"
dataField
="layerId"
headerText
="图层ID" />
<mx:DataGridColumn dataField="layerName" headerText="图层名字"/>
<mx:DataGridColumn dataField="foundFieldName" headerText="已找到图层"/>
<mx:DataGridColumn dataField="value" headerText="图层值"/>
</mx:columns>

</mx:DataGrid>


</mx:HDividedBox>
</s:Application>
posted @ 2011-05-06 19:10  师士  阅读(473)  评论(0编辑  收藏  举报