您的位置:首页 > 其它

Flex调用GP服务实现按划选范围切割地图(二)

2013-12-17 16:52 344 查看
具体代码实现:
<?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:esri=”http://www.esri.com/2008/ags

xmlns:mx=”library://ns.adobe.com/flex/mx”minWidth=”955″ minHeight=”600″>

<fx:Script>

<![CDATA[

import com.esri.ags.FeatureSet;

import com.esri.ags.Graphic;

import com.esri.ags.events.DrawEvent;

import com.esri.ags.events.GeoprocessorEvent;

import com.esri.ags.geometry.MapPoint;

import com.esri.ags.layers.FeatureLayer;

import com.esri.ags.layers.GPResultImageLayer;

import com.esri.ags.symbols.Symbol;

import com.esri.ags.tasks.supportClasses.ExecuteResult;

import com.esri.ags.tasks.supportClasses.ParameterValue;

import mx.controls.Alert;

import mx.events.ItemClickEvent;

import mx.rpc.AsyncResponder;

import mx.rpc.events.FaultEvent;

import spark.events.IndexChangeEvent;

protected functiondrawTool_drawEndHandler(event:DrawEvent):void

{

// reset after finished drawing a feature

myDrawTool.deactivate();

var graphic:Graphic=new Graphic(event.graphic.geometry);

var inputPolyFS:FeatureSet = new FeatureSet();

inputPolyFS.features = [graphic];

var params:Object = { “ClipFeature”: inputPolyFS,”lnshijie1_region”:”lnshijie1_region”};

gp.addEventListener(GeoprocessorEvent.JOB_COMPLETE,gp_JobCompleteHandler);

gp.addEventListener(GeoprocessorEvent.GET_RESULT_DATA_COMPLETE,gp_ResultCompleteHandler);

gp.addEventListener(FaultEvent.FAULT,onGPFault);

gp.submitJob(params);

//gp.execute(params);

//graphicsLayer.clear();

}

protected functiongp_JobCompleteHandler(event:GeoprocessorEvent):void

{

//调用getResultData方法获取结果,该方法执行成功后将派发//GET_RESULT_DATA_COMPLETE事件

gp.getResultData(event.jobInfo.jobId,”Output”);

var myImageLayer:GPResultImageLayer=gp.getResultImageLayer(event.jobInfo.jobId,”Output”,null);

//Map1.addLayer(myImageLayer);

//Alert.show(“gp_JobCompleteHandler”,event.jobInfo.jobId);

}

private function gp_ResultCompleteHandler(event:GeoprocessorEvent):void

{

var pv : ParameterValue = event.parameterValue;

var fs : FeatureSet = pv.value as FeatureSet;

var ruteGraphicsLayer:GraphicsLayer = newGraphicsLayer();

//ruteGraphicsLayer.graphicProvider = fs.features;

//Map1.addLayer(ruteGraphicsLayer);

//var symbol:SimpleMarkerSymbol = newSimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_SQUARE, 8, 0xFF0000, 0.5);

//symbol.outline = new SimpleLineSymbol();

for each (var graphic:Graphic in fs.features)

{

graphic.symbol = rFill;

graphicsLayer.add(graphic);

var attr:Object = graphic.attributes;

if (graphic.attributes.hasOwnProperty(“AREA”))

{

Alert.show(graphic.attributes.CITYNAME +“:” + graphic.attributes.Shape_Area,”面积”);

}

}

Map1.addLayer(graphicsLayer);

//Alert.show(“123,321″,fs.features.length.toString());

}

protected function btnok_clickHandler(event:MouseEvent):void

{

myDrawTool.activate(DrawTool.POLYGON);

}

private function onGPFault(fe:FaultEvent):void

{

this.cursorManager.removeBusyCursor();

if (fe.type == “fault” && fe.fault.name ==“Error” && fe.fault.faultString == “Error Executing Task”)

{

Alert.show(“Oops – no results. Maybe try asmaller number.”);

}

else

{

Alert.show(“Unexpected fault:

” + fe.toString());

}

}

protected functiongp_jobCompleteHandler(event:GeoprocessorEvent):void

{

//调用getResultData方法获取结果,该方法执行成功后将派发//GET_RESULT_DATA_COMPLETE事件

gp.getResultData(event.jobInfo.jobId,”Output”);

// varmyImageLayer:GPResultImageLayer=gp.getResultImageLayer(event.jobInfo.jobId,”Output”,null);

// Map1.addLayer(myImageLayer);

var pv : ParameterValue = event.parameterValue;

var fs : FeatureSet = pv.value as FeatureSet;

var ruteGraphicsLayer:GraphicsLayer = newGraphicsLayer();

ruteGraphicsLayer.graphicProvider = fs.features;

Map1.addLayer(ruteGraphicsLayer);

// TODO Auto-generated method stub

//Alert.show(“111″, “Oops”);

}

]]>

</fx:Script>

<fx:Declarations>

<esri:SimpleMarkerSymbol id=”sms_circleAlphaSizeOutline”color=”0xFF0000″ alpha=”0.5″ size=”15″ style=”circle”/>

<esri:SimpleFillSymbol id=”rFill” alpha=”0.5″ color=”0xFF0000″/>

<esri:SimpleFillSymbol id=”gFill” alpha=”0.5″color=”0x00FF00″/>

<esri:SimpleFillSymbol id=”bFill” alpha=”0.5″color=”0x0000FF”/>

<!– Symbol for all point shapes –>

<esri:SimpleMarkerSymbol id=”sms”

color=”0x00FF00″

size=”12″

style=”square”/>

<!– Symbol for all line shapes –>

<esri:SimpleLineSymbol id=”sls”

width=”3″

color=”0x00FF00″/>

<!– Symbol for all polygon shapes –>

<esri:SimpleFillSymbol id=”sfs”

color=”0xFFFFFF”

style=”diagonalcross”>

<esri:outline>

<esri:SimpleLineSymbol width=”2″color=”0x00FF00″/>

</esri:outline>

</esri:SimpleFillSymbol>

<esri:Geoprocessor id=”gp”

concurrency=”last”

showBusyCursor=”true”

utSpatialReference=”{Map1.spatialReference}”

url=”http://guo/arcgis/rest/services/tooltest/GPServer/guo”/>

<esri:DrawTool id=”myDrawTool”

drawEnd=”drawTool_drawEndHandler(event)”

fillSymbol=”{sfs}”

graphicsLayer=”{graphicsLayer}”

lineSymbol=”{sls}”

map=”{Map1}”

markerSymbol=”{sms}”/>

</fx:Declarations>

<s:controlBarLayout>

<s:HorizontalLayout horizontalAlign=”center”

paddingBottom=”1″

paddingTop=”1″/>

</s:controlBarLayout>

<s:Label id=”messages”

width=”100%”

fontSize=”14″

fontStyle=”italic”

paddingLeft=”4″

paddingRight=”4″

paddingTop=”4″/>

<s:Button id=”btnok” click=”btnok_clickHandler(event)”>

</s:Button>

<esri:Map id=”Map1″ >

<esri:ArcGISDynamicMapServiceLayer url=”http://localhost/ArcGIS/rest/services/shuilifabu/MapServer“>

</esri:ArcGISDynamicMapServiceLayer>

<esri:GraphicsLayer id=”graphicsLayer” />

</esri:Map>

</s:Application>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: