Solved! Go to Solution.
<?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" pageTitle="Find features in Map Layers"> <s:layout> <s:VerticalLayout horizontalAlign="center"/> </s:layout> <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 = "Found " + event.findResults.length + " results."; var resultCount:int = event.findResults.length; for (var i:Number = 0; i < resultCount; i++) { graphic = event.findResults.feature; graphic.toolTip = event.findResults.foundFieldName + ": " + event.findResults.value; switch (graphic.geometry.type) { case Geometry.MAPPOINT: { graphic.symbol = smsFind; break; } case Geometry.POLYLINE: { graphic.symbol = slsFind; break; } case Geometry.POLYGON: { graphic.symbol = sfsFind; break; } } myGraphicsLayer.add(graphic); } } ]]> </fx:Script> <fx:Declarations> <!-- Symbol for Find Result as Polyline --> <esri:SimpleLineSymbol id="slsFind" width="3" alpha="0.9" color="0xFFFF00" style="solid"/> <!-- Symbol for Find Result as Point --> <esri:SimpleMarkerSymbol id="smsFind" alpha="0.9" color="0xFFFF00" size="11" style="square"> <esri:SimpleLineSymbol color="0x000000"/> </esri:SimpleMarkerSymbol> <!-- Symbol for Find Result as Polygon --> <esri:SimpleFillSymbol id="sfsFind" alpha="0.7" color="0xFFFF00"/> <!-- Find Task --> <esri:FindTask id="findTask" executeComplete="executeCompleteHandler(event)" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/> <esri:FindParameters id="myFindParams" contains="true" layerIds="[0,1,2]" outSpatialReference="{map.spatialReference}" returnGeometry="true" searchFields="[FID]" searchText="{fText.text}"/> </fx:Declarations> <s:BorderContainer width="100%" height="40" backgroundColor="0xDDDDFF"> <s:layout> <s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:Label text="Search for FID:"/> <s:TextInput id="fText" enter="doFind()" maxWidth="400" text="0"/> <s:Button click="doFind()" label="Find"/> </s:BorderContainer> <s:Label id="resultSummary" height="15"/> <mx:VDividedBox width="100%" height="100%"> <esri:Map id="map"> <esri:extent> <esri:Extent xmin="-126" ymin="24" xmax="-67" ymax="50"> <esri:SpatialReference wkid="4326"/> </esri:Extent> </esri:extent> <esri:ArcGISDynamicMapServiceLayer url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/> <esri:GraphicsLayer id="myGraphicsLayer"/> </esri:Map> <mx:DataGrid width="100%" height="40%" dataProvider="{findTask.executeLastResult}"> <mx:columns> <mx:DataGridColumn width="70" dataField="layerId" headerText="Layer ID"/> <mx:DataGridColumn dataField="layerName" headerText="Layer Name"/> <mx:DataGridColumn dataField="foundFieldName" headerText="Found Field Name"/> <mx:DataGridColumn dataField="value" headerText="Found Field Value"/> </mx:columns> </mx:DataGrid> </mx:VDividedBox> </s:Application>
<?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" pageTitle="Find features in Map Layers"> <s:layout> <s:VerticalLayout horizontalAlign="center"/> </s:layout> <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 = "Found " + event.findResults.length + " results."; var resultCount:int = event.findResults.length; for (var i:Number = 0; i < resultCount; i++) { graphic = event.findResults.feature; graphic.toolTip = event.findResults.foundFieldName + ": " + event.findResults.value; switch (graphic.geometry.type) { case Geometry.MAPPOINT: { graphic.symbol = smsFind; break; } case Geometry.POLYLINE: { graphic.symbol = slsFind; break; } case Geometry.POLYGON: { graphic.symbol = sfsFind; break; } } myGraphicsLayer.add(graphic); } } ]]> </fx:Script> <fx:Declarations> <!-- Symbol for Find Result as Polyline --> <esri:SimpleLineSymbol id="slsFind" width="3" alpha="0.9" color="0xFFFF00" style="solid"/> <!-- Symbol for Find Result as Point --> <esri:SimpleMarkerSymbol id="smsFind" alpha="0.9" color="0xFFFF00" size="11" style="square"> <esri:SimpleLineSymbol color="0x000000"/> </esri:SimpleMarkerSymbol> <!-- Symbol for Find Result as Polygon --> <esri:SimpleFillSymbol id="sfsFind" alpha="0.7" color="0xFFFF00"/> <!-- Find Task --> <esri:FindTask id="findTask" executeComplete="executeCompleteHandler(event)" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/> <esri:FindParameters id="myFindParams" contains="true" layerIds="[0,1,2]" outSpatialReference="{map.spatialReference}" returnGeometry="true" searchFields="[FID]" searchText="{fText.text}"/> </fx:Declarations> <s:BorderContainer width="100%" height="40" backgroundColor="0xDDDDFF"> <s:layout> <s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:Label text="Search for FID:"/> <s:TextInput id="fText" enter="doFind()" maxWidth="400" text="0"/> <s:Button click="doFind()" label="Find"/> </s:BorderContainer> <s:Label id="resultSummary" height="15"/> <mx:VDividedBox width="100%" height="100%"> <esri:Map id="map"> <esri:extent> <esri:Extent xmin="-126" ymin="24" xmax="-67" ymax="50"> <esri:SpatialReference wkid="4326"/> </esri:Extent> </esri:extent> <esri:ArcGISDynamicMapServiceLayer url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/> <esri:GraphicsLayer id="myGraphicsLayer"/> </esri:Map> <mx:DataGrid width="100%" height="40%" dataProvider="{findTask.executeLastResult}"> <mx:columns> <mx:DataGridColumn width="70" dataField="layerId" headerText="Layer ID"/> <mx:DataGridColumn dataField="layerName" headerText="Layer Name"/> <mx:DataGridColumn dataField="foundFieldName" headerText="Found Field Name"/> <mx:DataGridColumn dataField="value" headerText="Found Field Value"/> </mx:columns> </mx:DataGrid> </mx:VDividedBox> </s:Application>