使用rcforilverlight实现地形坡度在线分析right

苦逼的研究生课程终于在今天结束了,也许从今以后再也不会坐在大学的课堂上正式的听老师讲课了,接下来的时间就得开始找工作了.....前段时间一直比较忙,上课,考试,论文,以及联系实习单位...现在就差实习还没有着落了。

前些天帮一网友做了个在线坡度分析的例子,大概的功能就是勾选任意的地形区域,然后实现Web端的地形坡度分析和可视化显示,效果图如下:

实现的基本思路大致分为以下三部分:

1.在ArcMap中建立坡度求解模型和坡度统计分析模型

2.发布模型为结果地图服务,并在客户端调用

3.根据将结果添加地形渲染的分级视图。

一、建立坡度分析和统计分析模型

打开ArcMap,使用ModelBuilder建立如下所示的模型:

这里需要注意两个地方:

在 10.1 版本之前,必须在模型构建器中明确设置中间数据变量,并且强烈推荐使用输出路径下的 %scratchworkspace% 约定将所有输出写入地理处理 scratchworkspace 环境。在10.1中不必使用此约定。

2.该模型具有两个输出模型参数:SlopeData,表示坡度的栅格数据,和ZonalTable,表示对坡度栅格数据统计的结果(如:坡度的最大值,最小值,平均值等)。

在模型建好以后,需要将该模型发布为结果地图服务,关于10.1中结果地图服务的发布可参考之前的博文。

二、Silverlight客户端调用结果地图服务,获得坡度分析结果和统计结果(坡度最大值,最小值,平均值等)。

Web端调用的过程和调用GP服务的过程一致,大致如下:

2.实例化地理处理服务变量,并注册相应事件:

从以上建立的模型可知:

输入的模型参数有:

polygon:表示勾选的区域,也就是执行坡度分析的地形区域

输出测量单位:表示坡度分析的结果如何表示,有两种选择,Degree:坡度以角度表示,值得范围在0-90度之间,PERCENT_RISE:表示以高程的百分比表示,默认为DEGREE.

Z 因子:一个Z单位与x,y方向单位的比值,这里

后台输入GP服务参数,调用服务代码:

请求GP服务之后接下来就是获取GP服务的结果,这里我们需要取得两个结果,一是坡度分析结果(栅格数据,对应的格式是:GPResultImageLayer),一是坡度统计结果(表格,对应的数据格式:GPRecordSet)这里我们先来获取坡度分析结果,即栅格数据。

获取栅格数据可以通过地理处理服务的GetResultImageLayerCompleted事件来获得结果,但是我们需要在地理处理服务的Completed事件中进行请求,Completed事件表示本次地理处理任务已经完成,接下来才能获取地理处理服务的结果。示例代码:

在开始部分我们已经注册地理处理服务的JobCompleted,GetResultDataCompleted和GetResultImageLayerCompleted事件,接下来在相应部分完成相应的代码,

其中JobCompleted是获取结果的前提,所有的获取地理处理结果的请求,都要等地理处理服务完成(及JobCompleted),同时请求结果的时候不能同时请求两个结果,如获取栅格数据的代码如下:

接下来就是获得坡度的栅格数据,然后在地图上显示,并同时发送获取统计表格的请求:

获取坡度统计表格的数据,表格在Web客户端传输的的格式是GPRecordSet,直接遍历即可,这里因为执行一次坡度分析,所以表格中只有一条记录,示例代码如下:

以上代码包含了栅格数据渲染的颜色等级显示图例,其中用到了一个方法:CreateColorList,该方法用来构造由绿到黄再到红的不同的渐变颜色。

以及RenderModel,该类代码如下:

这样便完成了坡度分析和颜色等级图例。

最后再来几张效果图吧!

初始界面:

勾选地形区域进行坡度分析:

正在进行坡度分析:

坡度分析结果显示:

PS:蛋疼的博客园,为了写这篇日志耗了我一个晚上,上传图片一直失败,失败后直接刷新,之前写的没有保存,直接没有了,代码弄了好久也还是没有成功,所以需要代码的请留下您的邮箱,我会在第一时间将代码发送到您的邮箱。

THE END
0.CC工具箱使用指南:坡度细碎图斑融合gis碎小图斑就近合并这个工具的目的是,将面积小于某个阈值的的坡度图斑,融合到相邻图斑坡度较低的那个图斑里。 规范里的原话是这样的: 二、工具参数介绍 右键点击面要素图层,在弹出的右键菜单中点击【坡度细碎图斑融合】即以打开下方的工具界面: 1、选择坡度等级字段 按规范,坡度等级应该是个整型字段,字段值范围在1-5之间。 jvzquC41dnuh0lxfp0tfv8}ee5:57;8881gsvrhng1jfvjnnu1747?<34:=
1.补考急救!一建《建筑》96个数字考点总结,考前速记就靠它!考点4:屋面最小坡度 考点5:防火门窗等级及耐火极限 防火门、防火窗应划分为甲、乙、丙三级,其耐火极限:甲级应为1.5h;乙级应为1.0h;丙级应为0.5h。 考点6:房屋建筑的结构设计工作年限 考点7:预应力混凝土楼板结构混凝土最低强度等级 预应力混凝土楼板结构混凝土最低强度等级不应低于C30,其他预应力混凝土构件的混凝土最低强度等级不 jvzquC41o08457hqo1p{u:4l|ii0z~jdc1814<5512;27:<42;;23@;0jvsm
2.粤港澳大湾区植被覆盖特征与变化趋势的自然驱动力研究在ArcGIS中利用自然间断点法将高程分为<82 m、82—217 m、217—394 m、394—653 m、>653 m共5个梯度等级;依据1984年中国农业区划委员会颁发的《土地利用现状调查技术规程》,将研究区坡度划分为≤2°、2°—6°、6°—15°、15°—25°和>25°共 5 个坡度等级,将研究区坡向均等划分为北、东北、东、jvzquC41yy}/h8830ipo8ucig532;7133651:8877;537xjvor
3.环法爬坡等级:你需要了解的分类标准在评定爬坡等级时,古维努和他在环法主办方A.S.O.的团队采用了一个简单数学公式。“对于不太知名的爬坡路段,我们通常会用距离乘以平均坡度的平方来计算,得出的数值就是我们评判难度的依据。” 以阿尔普迪埃为例,这座拥有21个发夹弯的高山,全长13.8公里,平均坡度为8.1%。计算公式为:难度系数=距离(km)×平均坡度(jvzq<84tguuvtlj0vvvmw|3ep1vvdunuj1gqr8icvc532;:1295148:837881|mctg7/j}rn