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>
<?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>
相关文章推荐
- Flex调用GP服务实现按划选范围切割地图(一)
- FLEX调用带结果地图服务的GP服务
- ArcGISServer Flex API 调用GP服务实现服务区分析
- ArcGISServer Flex API 调用GP服务实现服务区分析(转帖)
- ArcGIS API for Flex 调用天地图和Google地图服务
- ArcGIS Server Flex API调用GP服务的一般步骤
- ArcGIS Flex API 调用天地图和Google地图服务
- flex调用arcgis地图服务发布地图遇到安全沙箱问题
- flex 调用gp服务
- ArcGISServer Flex API调用GP模型实现最短路径分析
- ArcGIS Server Flex API 调用GP服务
- Flex中调用本地html实现百度地图API Javascript版的一些常用地图功能
- 基于ArcGIS API For JavaScript调用GP服务实现动态插值分析实现
- arcgis for js实现GP服务创建、发布、调用(调用GP发布服务)
- Flex调用GP及地图编辑示例
- ArcServer +Flex 发布GP服务生成等值面(三) ---前端调用
- arcgis for js实现GP服务创建、发布、调用(GP模型制作与发布服务)
- ArcGIS Flex API 调用天地图和Google地图服务
- openlayer调用geoserver发布的地图实现地图的基本功能
- geoserver 通过代码实现发布地图服务