Flex API 实现等值线

本文详细介绍了如何使用Flex框架与GIS服务相结合,开发动态地图应用,重点在于模型调用、事件监听及输出处理。通过实例代码展示了如何实现地图交互功能、模型调用与结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模型实现:详见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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值