您的位置:首页 > Web前端

ArcServer +Flex 发布GP服务生成等值面(三) ---前端调用

2010-04-09 17:02 232 查看
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:esri=http://www.esri.com/2008/ags
layout="absolute" width="100%" height="100%" xmlns:layers="com.esri.ags.layers.*">

<mx:Script>
<![CDATA[
import classes.GPContainer;
import mx.managers.PopUpManager;
import mx.containers.TitleWindow;
import mx.containers.VBox;
import com.esri.ags.layers.ImageParameters;
import com.esri.ags.layers.GPResultImageLayer;
import com.esri.ags.tasks.Query;
import com.esri.ags.tasks.QueryTask;
import com.esri.ags.layers.GraphicsLayer;
import mx.messaging.channels.StreamingAMFChannel;
import mx.rpc.events.FaultEvent;
import com.esri.ags.tasks.JobInfo;
import com.esri.ags.events.GeoprocessorEvent;
import com.esri.ags.Graphic;
import com.esri.ags.events.MapMouseEvent;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.tasks.ExecuteResult;
import com.esri.ags.tasks.FeatureSet;
import com.esri.ags.tasks.ParameterValue;
import mx.controls.Alert;
import mx.rpc.AsyncResponder;

private var jobid:String="";

private function computeServiceArea(mapPoint:MapPoint):void
{

//先查询出FeatureSet 作为GP的输入参数
var queryTask:QueryTask=new QueryTask("http://sps-010/ArcGIS/rest/services/guangyuangp/MapServer/0");
queryTask.showBusyCursor=true;
var query:Query=new Query();
query.outFields=new Array("OBJECTID","SHAPE","DYP");
query.where="STCD <>''";
queryTask.execute(query,new AsyncResponder(onQueryResult,onQueryFault));
function onQueryResult(featureSet:FeatureSet, token:Object = null):void
{

var params:Object = {
"Input_point_features":featureSet

};

gp.addEventListener(GeoprocessorEvent.JOB_COMPLETE, completeCallback);

gp.addEventListener(FaultEvent.FAULT,onFault);
gp.submitJob( params );
}

function onQueryFault(info:Object, token:Object = null):void
{
Alert.show(info.toString());
}
}

function completeCallback(event: GeoprocessorEvent) : void
{
jobid=event.jobInfo.jobId;
var imageParameters : ImageParameters = new ImageParameters();
imageParameters.format="png32";
imageParameters.width=600;
imageParameters.height=400;

gp.getResultImage(event.jobInfo.jobId,"outputMap",imageParameters,new AsyncResponder(onimgok, onimgno));

}

function onimgok(info:Object, token:Object = null):void
{
var obj:Object=gp.getResultImageLastResult;
var imageParameters : ImageParameters = new ImageParameters();
imageParameters.format="png32";
imageParameters.width=600;
imageParameters.height=400;
var myImageLayer :GPResultImageLayer=gp.getResultImageLayer(jobid,"outputMap",imageParameters);
//myMap.addLayer(myImageLayer);

var gpWin:GPContainer=PopUpManager.createPopUp(this,GPContainer,false) as GPContainer;
gpWin.ShowResultLayer(myImageLayer);
gpWin.title="降雨等值面";

PopUpManager.centerPopUp(gpWin);
}

function onimgno(info:Object, token:Object = null):void
{
}
private function mapClickHandler(event:MapMouseEvent):void
{
computeServiceArea(event.mapPoint);
}
]]>
</mx:Script>

<esri:Map id="myMap" mapClick="mapClickHandler(event)" width="100%" height="100%" >
<!-- <esri:extent>
<esri:Extent xmin="-95.41" ymin="38.86" xmax="-95.1" ymax="39.06">
<esri:SpatialReference wkid="4326"/>
</esri:Extent>
</esri:extent>-->
<esri:ArcGISDynamicMapServiceLayer url="http://sps-010/ArcGIS/rest/services/gpBase/MapServer"/>
<esri:GraphicsLayer id="graphicsLayer" renderer="{uniqueValueRenderer}"/>
</esri:Map>

<esri:Geoprocessor showBusyCursor="true" id="gp" url="http://sps-010/ArcGIS/rest/services/guangyuangp/GPServer/dengzhi"/>
</mx:Application>



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