模型实现:详见http://www.gisall.com/index.php?uid-124272-action-viewspace-itemid-6086
其中需要注意的地方,中间输出环境变量要用草图工作空间%scratchworkspace%,能拖管的一定要托管.
具体实现代码
1. <?xml version=”1.0″ encoding=”utf-8″?>
2. <s:Application xmlns:fx=”http://ns.adobe.com/mxml/2009”
3. xmlns:s=”library://ns.adobe.com/flex/spark”
4. xmlns:mx=”library://ns.adobe.com/flex/mx” xmlns:supportClasses=”com.esri.ags.skins.supportClasses.*”minWidth=”955″ minHeight=”600″ xmlns:esri=”http://www.esri.com/2008/ags“>
5.
6. <fx:Script>
7.
8. <![CDATA[
9.
10.
11. import com.esri.ags.FeatureSet;
12. import com.esri.ags.Graphic;
13. import com.esri.ags.events.DrawEvent;
14. import com.esri.ags.events.GeoprocessorEvent;
15. import com.esri.ags.geometry.MapPoint;
16. import com.esri.ags.layers.FeatureLayer;
17. import com.esri.ags.layers.GPResultImageLayer;
18. import com.esri.ags.symbols.Symbol;
19. importcom.esri.ags.tasks.supportClasses.ExecuteResult;
20. importcom.esri.ags.tasks.supportClasses.ParameterValue;
21.
22. import mx.controls.Alert;
23. import mx.events.ItemClickEvent;
24. import mx.rpc.AsyncResponder;
25. import mx.rpc.events.FaultEvent;
26.
27. import spark.events.IndexChangeEvent;
28. protected functiontbb_itemClickHandler(event:ItemClickEvent):void
29. {
30.
31. switch (event.index)
32. {
33.
34. case 0:{navTool.activate(NavigationTool.PAN , true);break; }
35. case 1:{navTool.activate(NavigationTool.ZOOM_IN , true); break; }
36. case 2: {navTool.activate(NavigationTool.ZOOM_OUT, true); break; }
37. case 3:{navTool.zoomToPrevExtent(); break; }
38. case 4:{navTool.zoomToNextExtent(); break; }
39. case 5:{navTool.map.zoomToInitialExtent(); break; }
40. case 6:{
41.
42. //添加系列监听对gp模型输出结果进行处理
43. gp.addEventListener(GeoprocessorEvent.JOB_COMPLETE,gp_JobCompleteHandler);
44.
45. gp.addEventListener(GeoprocessorEvent.GET_RESULT_DATA_COMPLETE,gp_ResultCompleteHandler);
46.
47. gp.addEventListener(FaultEvent.FAULT,onGPFault);
48.
49. gp.submitJob(null);
50.
51. break;
52. }
53.
54. }
55. }
56.
57. protected functiongp_JobCompleteHandler(event:GeoprocessorEvent):void
58. {
59.
60. //输出output
61. gp.getResultData(event.jobInfo.jobId,"output");
62.
63.
64.
65. }
66. //把返回结果显示到地图上
67. private functiongp_ResultCompleteHandler(event:GeoprocessorEvent):void
68.
69. {
70.
71. var pv : ParameterValue =event.parameterValue;
72.
73.
74. var fs : FeatureSet = pv.value asFeatureSet;
75.
76.
77. ruteGraphicsLayer.graphicProvider =fs.features;
78.
79. Map1.addLayer(ruteGraphicsLayer);
80.
81.
82.
83. }
84. //gp执行失败的错误处理
85. private function onGPFault(fe:FaultEvent):void
86. {
87. this.cursorManager.removeBusyCursor();
88. if (fe.type == "fault"&& fe.fault.name == "Error" && fe.fault.faultString== "Error Executing Task")
89. {
90. Alert.show("Oops - noresults. Maybe try a smaller number.");
91. }
92. else
93. {
94. Alert.show("Unexpected fault:
" + fe.toString());
95. }
96. }
97.
98.
99. ]]>
100. </fx:Script>
101. <fx:Declarations>
102. <esri:SimpleLineSymbol id=”sls”
103. width=”3″
104. color=”0x00FF00″/>
105. <!– 将非可视元素(例如服务、值对象)放在此处 –>
106. <esri:NavigationTool id=”navTool” map=”{Map1}”/>
107. <esri:Geoprocessor id=”gp”
108. concurrency=”last”
109. showBusyCursor=”true”
110. utSpatialReference=”{Map1.spatialReference}”
111. url=”http://192.168.1.201:8399/arcgis/rest/services/idwtool/GPServer/idwtool”/>
112. </fx:Declarations>
113.
114. <esri:Map id=”Map1″ zoomSliderVisible=”false” >
115. <esri:ArcGISDynamicMapServiceLayer url=”http://192.168.1.201:8399/arcgis/rest/services/idw/MapServer“>
116. </esri:ArcGISDynamicMapServiceLayer>
117. <esri:GraphicsLayer id=”ruteGraphicsLayer”symbol=”{sls}”>
118.
119. </esri:GraphicsLayer>
120. </esri:Map>
121. <mx:ToggleButtonBar id=”tbb”itemClick=”tbb_itemClickHandler(event)” >
122. <mx:dataProvider>
123. <fx:Array>
124. <fx:String>漫游</fx:String>
125. <fx:String>拉框放大</fx:String>
126. <fx:String>拉框缩小</fx:String>
127. <mx:Button id=”btn1″ label=”前一视图”/>
128. <mx:Button id=”btn2″ label=”后一视图”/>
129. <mx:Button id =”btn3″ label=”全图” />
130. <mx:Button id =”btn4″ label=”等值线” />
131. </fx:Array>
132. </mx:dataProvider>
133. </mx:ToggleButtonBar>
134.
135. </s:Application>