WebGIS中等值面展现的相关方案简析

文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/前端

1.背景

等值面是气象、环保等相关项目上经常使用到的效果展现。在传统的CS项目中,能够利用一些二次开发工具进行开发,具备科研性质的项目上还会利用一些工具进行复杂建模出图而后流程化。这里,咱们撇去复杂的建模各因子,谈谈通用的等值面如何在WebGIS中进行展现。算法

首先,我介绍下几种能够在前端进行等值面渲染的方案:微信

a.利用arcgis的model进行建模,设置好输入项,插值工具,输出项等,而后发布成GP服务,前端须要使用时经过rest方式调用GP服务将最后的插值结果进行展现。函数

b.直接在前端进行等值面算法的实现。在开源库turfjs中提供了等值面的调用函数。工具

c.利用GDAL或者AE或者其余气象方面的开发包,开发专门的工具程序进行等值面生成,而后将结果以服务或者图片的方式供前端调用。开发工具

d.直接在后台写程序进行生成,好比使用wcontour.jar等进行后台开发服务。测试

2.等值面生成方案选择

项目首先想纯前端进行开发,可是观察了turfjs生成的等值面,效果不是很理想,出现不少没有被覆盖的空隙。例如:spa

 

GP服务的方案上,由于不想老是前端传入全部插值的点,而是让输入数据源直接关联上SDE中的表,SDE中该表的数据天天会变化,那么每次生成时,前端只需调用链接而不用传入任何数据便可生成新的等值面。目前还没解决直接让下图所示的input关联上SDE表的方法,有相关经验的同行若是知道请不吝赐教。rest

 

因此最后选择了熟悉的AE来生成等值面。server

3.服务自动发布方案选择

AE生成的数据为Grid格式:

 

自动发布方案目前有如下三种:

a.编写代码让arcgisserver自动发布。此种方案涉及到代码编写,而且还将出现对旧服务删除、新服务增长等操做,若是频率过多,对arcgisserver是个负担。

b.先用arcgisserver发布一个mapserver服务,而后每次更新替换掉该服务对应的路径文件夹中的文件。此种方法通过测试,每次替换了文件后,必须重启一次该服务才行,一样经过代码控制对arcgisserver存在压力。

c.直接编写代码对生成的等值面图进行切图,前端直接调用本地切图文件。由于自动切图工具已经有积累,因此采用此种方案。

4.项目最终采用的方案总结

a.将插值数据作成SHP经过SDE入库,利用MXD将入库数据进行添加,而且将掩膜数据也添入MXD。每次MIS上对接数据时动态修改SDE中该图层的插值属性的值便可。

b.经过MXD获取到数据要素,利用AE中集成好的插值算法进行插值。插值时选择好各插值参数,以及插值的掩膜图层。

c.对差值出来的栅格等值面数据进行分类渲染。

d.根据切图参数对最后栅格渲染图进行自动切图。

f.将切完的瓦片转移保存至瓦片服务文件夹下。

e.前端加载等值面切图瓦片。

5.效果展现

等值面demo工具效果以下:

 

自动切图后的结果以下:

 

系统中使用以下,支持多个等值面之间的切换,好比今、明、后三天的PM2.5等值面切换(因为重庆的数据缺乏部分为0,因此灰色部分不少)。

配置文件中,能够配置等值面各插值参数、等值字段、分类阈值、渲染色带、触发时间、切图参数、文件地址等:

 

 

                           -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                           若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                        

相关文章
相关标签/搜索