下面是源代碼
<?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:supportClasses="com.esri.ags.skins.supportClasses.*"
width="100%"
height="100%"
xmlns:esri="http://www.esri.com/2008/ags">
<s:layout>
<supportClasses:AttachmentLayout/>
</s:layout>
<fx:Declarations>
<!-- 將非可視元素(例如服務、值對象)放在此處 -->
<esri:SimpleFillSymbol id="sym"
alpha="0.7"
color="0x009933"/>
</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.MapPoint;
import com.esri.ags.geometry.Polygon;
import com.esri.ags.geometry.Polyline;
import com.esri.ags.layers.GraphicsLayer;
import com.esri.ags.symbols.PictureMarkerSymbol;
import com.esri.ags.symbols.Symbol;
import com.esri.ags.tasks.QueryTask;
import com.esri.ags.tasks.supportClasses.Query;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.AsyncResponder;
[Bindable]
private var AC:ArrayCollection=new ArrayCollection();
private function getxy():void
{
var query:Query=new Query(); //定義新的查詢
query.where="PNAME IS NOT NULL"; //這裏是查詢條件
var queryTask:QueryTask=new QueryTask("http://192.168.1.200:6080/arcgis/rest/services/CLfb/MapServer/2"); //定義查詢實時信息的任務
query.returnGeometry=true;
query.spatialRelationship="esriSpatialRelIntersects";
query.outSpatialReference=new SpatialReference(102113); //這裏定義投影系統
query.outFields=['PNAME']; //查詢字體
queryTask.useAMF=false;
queryTask.execute(query, new AsyncResponder(OnR, OnF));
function OnR(featureSet:FeatureSet, token:Object=null):void
{
var i:int=0;
var txtXY:String="";
//----------------寫入過程---------------
for each (var gra:Graphic in featureSet.features)
{
AC=new ArrayCollection();
var po:Polygon=gra.geometry as Polygon;
var z:int=0;
txtXY="";
for (z=0; z < po.rings.length; z++)
{
var pArr:Array=po.rings[z];
for (var k:int=0; k < pArr.length; k++)
{
var p:MapPoint=pArr[k] as MapPoint;
var o:Object=new Object();
o.x=p.x;
o.y=p.y;
txtXY+=p.x + "," + p.y + ";";
}
txtXY+="/";
}
xylabel.text=xylabel.text + txtXY;
lb.text=i / featureSet.features.length * 100 + "%";
i++;
}
ok.text="成功"
//----------------寫入過程---------------
}
function OnF(info:Object, token:Object=null):void
{
ok.text="失敗";
}
}
private function getSym(i:int):SimpleFillSymbol
{
var sym:SimpleFillSymbol=new SimpleFillSymbol();
sym.alpha=0.7;
switch (i)
{
case 0:
{
sym.color=0x009933;
break;
}
case 1:
{
sym.color=0x0033DD;
break;
}
case 2:
{
sym.color=0xddb100;
break;
}
case 3:
{
sym.color=0xdd4400;
break;
}
case 4:
{
sym.color=0x00dd1a;
break;
}
case 5:
{
sym.color=0xdd0068;
break;
}
default:
{
sym.color=0x009939;
break;
}
}
return sym;
}
protected function button1_clickHandler(event:MouseEvent):void
{
var arr:Array=xylabel.text.split("/"); //開始解析座標點
var pl:Polygon;
var arrP:Array;
var centerP:MapPoint;
var sp:SpatialReference=new SpatialReference(102113);
var arrPALL:Array;
for (var n:int=0; n < arr.length; n++)
{
arrPALL=new Array();
if (arr[n] != null && arr[n] != "")
{
arrP=new Array();
var arr2:Array=arr[n].toString().split(";");
for (var k:int=0; k < arr2.length; k++) //分別讀取座標組
{
if (arr2[k] != null && arr2[k] != null)
{
var arr3:Array=arr2[k].toString().split(",");
if (arr3[0] != null && arr3[0] != "" && arr3[1] != null && arr3[1] != "")
{
var _Point:MapPoint=new MapPoint(Number(arr3[0]), Number(arr3[1]), sp);
centerP=new MapPoint(Number(arr3[0]), Number(arr3[1]), sp);
arrP.push(_Point); //存放座標組
}
}
}
arrPALL.push(arrP);
}
pl=new Polygon(arrPALL, sp);
var g:Graphic=new Graphic(pl, getSym(n));
gl.add(g);
}
}
]]>
</fx:Script>
<s:HGroup width="100%"
height="100%">
<s:VGroup width="100%"
height="100%">
<s:Label text="這個頁面生成xy數組"/>
<s:TextArea id="xylabel"
width="624"
height="422"/>
<s:Label id="lb"/>
<mx:Text id="ok"/>
<s:Button label="生成XY"
click="getxy()"/>
</s:VGroup>
<s:VGroup width="100%"
height="100%">
<esri:Map id="map"
height="508"
width="638">
<esri:ArcGISDynamicMapServiceLayer url="http://192.168.1.200:6080/arcgis/rest/services/CLfb/MapServer"/>
<esri:GraphicsLayer id="gl"/>
</esri:Map>
<s:Button label="加載"
click="button1_clickHandler(event)"/>
</s:VGroup>
</s:HGroup>
</s:Application>