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