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

简介: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/1.背景等值面是气象、环保等相关项目上常用到的效果展示。在传统的CS项目中,可以利用一些二次开发工具进行开发,具有科研性质的项目上还会利用一些工具进行复杂建模出图然后流程化。

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

1.背景

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

首先,我介绍下几种可以在前端进行等值面渲染的方案:

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

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

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

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

2.等值面生成方案选择

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

 

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

 

所以最后选择了熟悉的AE来生成等值面。

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/

                                                                           如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                        

目录
相关文章
|
20天前
|
开发框架 前端开发 JavaScript
看图知义,Winform开发的技术特点分析
看图知义,Winform开发的技术特点分析
|
3月前
|
安全
哈希竞猜游戏系统开发玩法详情/功能步骤/需求设计/流程方案/源码程序
Developing a hash guessing game system can provide a fun gaming experience. The following are possible gameplay and rules for your reference:
|
3月前
|
前端开发 搜索推荐 JavaScript
探析单页应用(SPA)与多页应用(MPA):从技术角度选择合适的应用形式
随着Web应用的快速发展,单页应用(SPA)和多页应用(MPA)成为了开发者们在构建Web应用时常遇到的两种选择。本文将从技术角度出发,深入比较单页应用和多页应用的特点和优势,帮助读者更好地选择适合自己项目的应用形式。
56 0
|
3月前
|
安全
HASH哈希竞猜游戏系统开发指南详细/规则设计/成熟案例/源码程序
HASH哈希竞猜游戏是一种基于密码学的游戏,参与者需要根据给定的哈希值来猜测对应的原始数值。
|
10月前
|
存储 小程序 算法
【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】
【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】
72 0
|
12月前
|
前端开发 区块链
合成游戏看广告视频盒子系统开发方案逻辑/详细案例/功能设计/需求步骤/规则项目/源码说明
在Solidity中,与外部合约交互可以通过调用函数来完成。这些函数可以是在Solidity合约中定义的函数,也可以是在外部合约中定义的函数。调用外部合约函数需要知道合约的地址和函数的签名。
|
存储 运维 监控
一个开关就让服务网格变快 —— 概述篇
作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月
一个开关就让服务网格变快 —— 概述篇
|
数据采集 消息中间件 监控
最终整体回顾总结(流程-ppt)|学习笔记
快速学习最终整体回顾总结(流程-ppt)
91 0
最终整体回顾总结(流程-ppt)|学习笔记
|
算法 安全 搜索推荐
一文搞懂下拉框优化的价值和意义
一文搞懂下拉框优化的价值和意义
165 0
|
小程序 搜索推荐
聚合卡牌盲盒模式系统开发逻辑方案设计程序(成熟代码)
聚合卡牌盲盒模式系统开发逻辑方案设计程序(成熟代码)
278 0