<?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" xmlns:renderers="com.esri.ags.renderers.*" >
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<esri:QueryTask url="http://gis/ArcGIS/rest/services/x/MapServer/13" useAMF="false" showBusyCursor="true" id="queryTask">
</esri:QueryTask>
<esri:Query id="query" >
<esri:outFields>
<fx:String>NAME</fx:String>
</esri:outFields>
</esri:Query>
<esri:ClassBreaksRenderer>
<esri:ClassBreakInfo>
<esri:SimpleFillSymbol id="rfill" alpha="0.5" color="red"/>
</esri:ClassBreakInfo>
</esri:ClassBreaksRenderer>
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.esri.ags.FeatureSet;
import com.esri.ags.Graphic;
import com.esri.ags.SpatialReference;
import com.esri.ags.geometry.Geometry;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.geometry.Polygon;
import com.esri.ags.layers.GraphicsLayer;
import com.esri.ags.symbols.PictureMarkerSymbol;
import mx.controls.Alert;
import mx.rpc.AsyncResponder;
import mx.rpc.events.FaultEvent;
private var myGraphicLayer:GraphicsLayer=new GraphicsLayer();
private function doQuery():void
{
query.where="NAME like '%"+qText.text+"%'";
query.returnGeometry=true;
queryTask.execute(query,new AsyncResponder(OnResult,onFault));
}
private function OnResult(featureSet:FeatureSet,token:Object=null):void
{
var polygon:Polygon=new Polygon();
polygon=featureSet.features[0].geometry;
var graphic:Graphic=new Graphic();
graphic.geometry=polygon;
graphic.symbol=rfill;
myGraphicLayer.clear();
myGraphicLayer.add(graphic);
mymap.extent=featureSet.features[0].geometry.extent;
datagrid.dataProvider=featureSet.attributes;
mymap.addLayer(myGraphicLayer);
myGraphicLayer.graphicProvider=featureSet.features;
//mymap.centerAt(featureSet.features[0].geometry);
}
private function onFault(info:Object, token:Object = null):void
{
Alert.show(info.toString(), "Query Problem");
}
]]>
</fx:Script>
<esri:Map id="mymap">
<esri:ArcGISDynamicMapServiceLayer url="http://gis/ArcGIS/rest/services/x/MapServer"/>
</esri:Map>
<s:Panel height="60"
backgroundColor="0xB2BFC6"
title="Query a layer (search for a state)">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<s:TextInput id="qText"
width="100%"
enter="doQuery()"
text="南京市"/>
<s:Button click="doQuery()" label="Do Query"/>
</s:Panel>
<mx:DataGrid id="datagrid" bottom="20" width="200" height="150" horizontalCenter="0" />
</s:Application>